二分和枚举(主要是二分思想) - 做一个奋斗不止的小公举! - CSDN博客



二分和枚举(主要是二分思想) - 做一个奋斗不止的小公举! - CSDN博客

通常二分的题目都会使left=0,right=可能的最大值,然后再left 和right之间寻找最大值。
而最重要的就是能够把二分题目分析称这个思想。(目前,我的个人理解)

第一个是求最大的最小值,第二个是最小的最大值,好好理解一下

疯牛这道题就是先排序,然后知道最大的距离,在0 和MAX之间寻找答案
judge的想法是:判断这个当前距离,如果有另一个栅栏与他的距离大于当前距离,则假定可以安排牛,然后从当前牛开始继续寻找距离比当前距离大的。。
疯牛
时间限制:1000 ms | 内存限制:65535 KB
难度:4

描述
农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,…,xN (0 <= xi <= 1,000,000,000).
但是,John的C (2 <= C <= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让牛互相伤害。John决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是什么呢?

输入
有多组测试数据,以EOF结束。
第一行:空格分隔的两个整数N和C
第二行——第N+1行:分别指出了xi的位置
输出
每组测试数据输出一个整数,满足题意的最大的最小值,注意换行。
样例输入
5 312849
样例输出
3

题意:简单的说就是给你一段长度,在这一段中给出m个点,然后在这m个点中选出k个点,让这k个点之间相邻两个点的之间距离的最小值最大

思路:通过二分枚举这个最小值,然后通过贪心的思想找出满足要求的最大的这个最小值

解析:——二分枚举 + 贪心
这道题用到了刘汝佳算法入门经典上贪心那一节讲的算法,用二分枚举满足条件的最大距离,
依次做相应判断.本题不需要担心最后求出的距离不能适应题目中的隔间间的距离,
因为二分枚举之后是按照贪心发判断的,如果当前距离满足要求,会继续增大枚举的距离,
一直到无法满足要求为止,即最后结果一定满足是隔间间的距离 .


Read full article from 二分和枚举(主要是二分思想) - 做一个奋斗不止的小公举! - CSDN博客


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts