![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分治
bllsll
巴拉拉,起飞。
展开
-
CodeForces - 801C Voltage Keepsake
题意:一共有n个用电器,每个用电器开始的时候电量为b,每个单位时间会消耗a。有一个充电器,然后每个单位时间可以充p。#include <iostream>#include <cstdio>#include <cstring>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const in原创 2017-05-02 11:53:46 · 415 阅读 · 0 评论 -
poj 1064 cable master (分绳子)二分求最大值
取r 然后这个题主要的问题是避免四舍五入的。像我们一般printf(”%.2f”,b)什么都四舍五入过了的。然后避免四舍五入可以用floor函数#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;#define eps 1原创 2017-04-20 11:45:39 · 407 阅读 · 0 评论 -
lower_bound()返回值 & upper_bound()返回值
来自 http://blog.csdn.net/niushuai666/article/details/6734403函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回'大于或等于val的第一个元素位置'。如果所有元素都小于val,则返回last的位置举例如下: 一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,1原创 2017-05-10 11:34:15 · 569 阅读 · 0 评论 -
Median POJ - 3579 (两个二分求第k大的数)
Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1 ≤ i < j ≤ N). We can get C(N,2) differences through this work, and now your task is to find the原创 2017-04-24 10:07:11 · 457 阅读 · 0 评论 -
Monthly Expense POJ - 3273 (二分求最小值)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;int n,m;const int maxn = 100005;int a[maxn];int ok(long long mid){ long long d原创 2017-04-21 12:39:33 · 227 阅读 · 0 评论 -
River Hopscotch POJ - 3258 (二分求最小值)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn = 50005;int a[maxn];int n,L,m;int ok(int mid){ int dis=0,num=0;原创 2017-04-21 10:07:05 · 207 阅读 · 0 评论 -
POJ 3104 Drying (二分求最小值)
开始一看题目的时候,就想着二分时间,然后看可不可行。然后在写ok判断可不可行的时候,莫名的感觉不用二分#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <cmath>using namespace std;const int maxn = 100005;int n,k;i原创 2017-04-20 21:20:39 · 284 阅读 · 0 评论 -
poj 2456 Aggressive cows (二分求最大值)
题意:有n间牛房,然后有k头牛,问每头牛最大可以间隔多少。 还是不能判是取r还是l,那样的话就都判断一下吧#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;int a[100005];int n,k;int ok(i原创 2017-04-20 12:10:34 · 285 阅读 · 0 评论 -
Matrix POJ - 3685(二分 找第k大个数)
题意,给你个n*n的矩阵,然后矩阵中的每一个数和行列都有关,然后问第k大个数是什么。 开始的时候//想的太简单,比如(1,4)的关系和(2,5)的关系不知道呀 然后因为列确定了后,行数增加,数也跟着增加。。两个二分,和前面一个题有点像。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#in原创 2017-04-25 15:43:54 · 318 阅读 · 0 评论 -
棋盘覆盖问题
3、棋盘覆盖 在一个2k×2k (k≥0)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。显然,特殊方格在棋盘中可能出现的位置有4k种,因而有4k种不同的棋盘,左图所示是k=2时16种棋盘中的一个。棋盘覆盖问题要求用右图所示的4种不同形状的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 棋盘覆盖主要应用分治法求解,分治的技巧在于如何划分棋盘,原创 2017-04-23 21:35:02 · 631 阅读 · 0 评论 -
K Best POJ - 3111 (二分最大化平均值,注意用G++提交,不然TLE)
题意简单易懂。然后就是提交要用G++比较坑。然后有点定势思维的是以为v比w小。。所以一开始r初始化为了1…还有答案就在我们的a数组中#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define INF 0x3f3f3f3fconst int maxn原创 2017-04-23 01:14:13 · 394 阅读 · 0 评论 -
Cow Acrobats POJ - 3045 假二分【手动摊手】
题意:有n头牛,然后他们叠罗汉,然后每头牛都有一个w和s,然后每头牛的承受量等于,他们上面的牛的重量-s。求最优解中的最大承受量。 额…因为是在二分专题里,然后想用二分来做,二分最大承受量,然后判断是否可行(每头牛 的最大承受量小于mid),但是这个值是大于我们要求的值的。。。这个是一个 最优解,,根本就不是二分呀呀呀 当然,这个题还有一个坑点,ans有可能为负数,所以初始化ans的时候就不要为原创 2017-04-21 15:31:22 · 372 阅读 · 0 评论 -
二分
二分浮点数模板:const double eps = 1e-7;double l, r;while(1+eps< r){ double mid=(l+r)/2; if(ok(mid)) l=mid; else r=mid;}然后两道模板题 HRBUST - 1530 题意:有一个很多个pi,每个pi都是一个圆,然后给你半径,问你能不能平均分给f+1个人,每个人原创 2017-04-20 09:58:45 · 356 阅读 · 0 评论 -
二分小结
本来感觉自己二分应该已经掌握了,但是在一次热身赛中,一道裸的二分题,竟然都没有看出来是二分。。。感觉自己还没有完全掌握什么是二分二分:通过不断缩小(一半一半)取值的范围,来确定一个最优解。 原理:如果f(i)是真的,那么对于f(j)(j>=i) 恒为真poj 1064 Cable master 题意:一共有n条绳子,每条绳子的长度为Li,然后我们从这n条绳子中切出k段长度相等的绳子,问长度最大为原创 2017-05-30 15:35:11 · 288 阅读 · 0 评论