二分
Hanks_o
一名。
展开
-
bzoj1189: [HNOI2007]紧急疏散evacuate(二分+最大流+宽搜)
题目传送门 这道题真的是一道好题啊!!!! 表示做了两个小时。。 bzoj的数据是真的强(pi)。一开始yy了个图结果发现错了。 上网看了看题解。按照构图敲了个代码。 错了!!! 听说被一组神数据卡掉了。 数据如下。 4 5 XXDXX XX.XX X…X XXDXX 按照题解的方法跑出来答案是2但是手算是3。 很无语,只好自己yy了。。 所以想到了拆点。建图是这样的:原创 2017-09-16 14:32:01 · 524 阅读 · 0 评论 -
bzoj3993: [SDOI2015]星际战争(二分+最大流)
题目传送门 。解法: 题目要求最短时间,那么二分答案咯。 然后用最大流来判断就好。st向每台激光连时间*Bi表示他的伤害。 然后其实我们并不需要知道他怎么安排攻击。 这个交给最大流来做。 我们需要求的是激光按照最优的分配能不能总伤害达到消灭全部装甲所需要的伤害。 那么每台装甲向ed连Ai表示消灭这个装甲只需要Ai点伤害。 注意精度代码实现:#include<...原创 2018-03-27 08:33:43 · 347 阅读 · 0 评论 -
bzoj4724: [POI2017]Podzielno(数论+二分)
题目传送门 。解法: 看到题目一脸懵。。 怎么确定是倍数关系啊。 上网%题解。。Po姐说这是个定理: 一个数是B−1的倍数当且仅当其在B进制下所有位之和为B−1的倍数。想了很久怎么证明: x=B-1。那么每一位i其实就是每一位上的数*(x+1)^i。 那么(x+1)^i无论i为多少最后都会化出来一个常数1。那么也就是说每一位上的数都会乘这个1。 所以所有位之和应该为B-1的...原创 2018-03-21 09:15:09 · 259 阅读 · 0 评论 -
bzoj2756: [SCOI2012]奇怪的游戏(最大流)
题目传送门 。解法: 很神啊。 首先将图黑白染色。相邻点不同颜色。 那么每一次操作黑色点和白色点同时都要+1c1表示白色点数量。s1表示白色点总和。 c2,s2表示黑色。 因为每次操作黑白加的是一样的。 设最后都变成x。 那么有c1*x-s1=c2*x-s2 化简得x=(s1-s2)/(c1-c2)分情况讨论: 如果c1=c2。 那么s1!=s2的时候无解。 当...原创 2018-03-29 20:26:04 · 353 阅读 · 0 评论 -
bzoj1052: [HAOI2007]覆盖问题(二分+搜索)
题目传送门 。解法: 二分答案+搜索判断。 贪心思想正方形肯定刚刚好覆盖到边边。 那我们先手动删除一个正方形(四个角任选) 然后在判断下剩下的点是否都分别在两个正方形内就好了。。代码实现:#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream&g...原创 2018-03-06 13:59:18 · 288 阅读 · 0 评论 -
bzoj4590: [Shoi2015]自动刷题机(二分)
题目传送门 。解法: 二分啊。 二分枚举答案然后扫一遍答案就行了呀。 最小值: 如果当前的切题数小于等于k的话。 那么证明不够。所以n应该要更小。往下枚举。最大值: 如果当前的切题数大于等于k的话 那么证明切题数有多。所以n往大的枚举。同时如果切题数等于k的话记录答案就好代码实现:#include<cstdio>#include<cstr...原创 2018-03-22 19:02:07 · 228 阅读 · 0 评论 -
bzoj5106: [CodePlus2017]汀博尔(二分)
题目传送门 。解法: 二分下答案。 暴力check下。 注意不要把上界定为10^18次方会爆。代码实现:#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<cmath>using namespace s...原创 2018-03-08 21:03:58 · 409 阅读 · 0 评论 -
bzoj4552: [Tjoi2016&Heoi2016]排序(二分+线段树)
题目传送门 神!解法: 直接做难做。考虑线段树维护。二分答案。大于等于答案的设为1。比答案小的设为0。 可以用线段树快速统计出区间1和0的个数。 如果是升序的话就把所有0排在前面。 降序则反之。 最后看下q这个位置是否为1即可。代码实现:#include<cstdio>#include<cstring>#include<cstdlib&...原创 2018-03-14 20:20:03 · 354 阅读 · 0 评论 -
bzoj1305: [CQOI2009]dance跳舞(网络流)
题目传送门 。解法: 挺水的最大流啊。 拆点一个控制连喜欢的一个控制连不喜欢的。 第一个点向第二个点连容量为k的边表示只能选k个不喜欢的。。 然后建完图我高兴的以为又a了一题。结果wa了。 静下来想想发现别人找到四个伴侣我可能只找到两个。 这样的话是不行的。 所以二分规定放多少首歌。 然后从st只流出这么多的流量。如果满流,说明这个歌的数量可以满足。代码实现:#i...原创 2018-03-06 21:19:15 · 216 阅读 · 0 评论 -
bzoj1816: [Cqoi2010]扑克牌(二分)
题目传送门 。解法: 好水啊。 就二分下答案然后每个至少要补多少个。 看下总数是否小于等于joker的个数以及使用joker个数小于等于答案数(因为每套牌只能用一个joker)代码实现:#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>...原创 2018-03-06 20:38:03 · 304 阅读 · 0 评论 -
bzoj4326: NOIP2015 运输计划(lca+二分)
题目传送门 好题啊。解法: 比较综合。。 我一开始想: 先把所有距离求出来。 然后二分答案。 所有的路径距离>答案 说明需要建虫洞。 在所有大于答案的路径中是有交集的。 那么我们只需要在交集中找到一条边使得所有路径-边权<=答案。 然后用差分咯。 sum[i]表示1到i这条边次数都加1。 然后就差分嘛。 对于每个x和y。 1到x路径+1 1到y路径+1 1到lca路径原创 2017-12-25 14:00:46 · 340 阅读 · 0 评论 -
bzoj2654: tree(二分+最小生成树)
题目传送门 神题。解法: 想了我一个小时就是想不出来怎么做。 上来看看硬做行不行好像不行。 想了想二分边权和。 还是不行。。 想了很久怎么做。想不出来。 %题解!!哇神方法。 当所有白色的边都加上一个东西的时候。 那么对于最后的方案白色的边因为权大了所以势必要减少。 当所有白色的边都减去一个东西的时候。、 那么对于最后的方案白色的边因为权小了所以势必要增多。 所以就二分这个东原创 2017-12-19 20:46:21 · 347 阅读 · 0 评论 -
bzoj4443: [Scoi2015]小凸玩矩阵(二分+二分图匹配)
题目传送门 不错的题啊。解法: 第一眼看上去:二分!!! 求第K大的最小值嘛。 跟求最大的尽量小有什么区别。 一看感觉就是二分。。 继续想: 要找行和列不同的点? 这题怎么跟我之前做过的一道题这么像呢。。(bzoj1059) 二分图匹配嘛。我做过的。。那么我们就二分最小值咯。然后大于等于他的点我们给行跟列一个匹配关系。 然后跑一次二分图匹配,看一下是否>=K个,这道题就解决了,美原创 2017-10-13 14:54:01 · 373 阅读 · 0 评论 -
bzoj1650: [Usaco2006 Dec]River Hopscotch 跳石子 luogu【P2678】 跳石头 (二分)
题目传送门 师兄叫我们刷usaco。 我为了骗访问量到luogu找到了原题哈哈哈。 我可以发blog了。解法: 玄学的二分啊。 我的方法跟大多数人都不同。 我先二分答案。 然后距离上一个保留石头大于等于这个答案的石头我都应该保存下来。 然后看一下保存下来的石头是否<=n-m不就完了吗? 错! 不可以等于这个答案。 为什么? 比如四个石头。 4,8,12,16。 如果我现在原创 2017-10-13 15:13:19 · 441 阅读 · 0 评论 -
bzoj 3477: [Usaco2014 Mar]Sabotage luogu 【P2115】 [USACO14MAR]破坏Sabotage(二分)
题目传送门 好题啊卡精度真的不厚道。 卡了一个小时。。解法: 首先二分答案!!答案是平均值哦。 然后每个数都减去平均值,这是平均值的经典解法。 然后求最大子段和,因为我们要对剩下的数构成最大影响。 那么选的数就要尽量大。 所以我们求出最大子段和,然后看一下剩下数的和是否<=0。 因为: 如果==0的话,那么说明这个答案是可行的。 如果<0的话,说明正确答案比这个答案还要小,所以先原创 2017-10-13 15:46:30 · 468 阅读 · 0 评论 -
bzoj1044: [HAOI2008]木棍分割(二分+单调队列)
题目传送门 跑了3s那些200ms的是怎么跑出来的。。解法: 第一问蛮简单。以前大概做过这种类型的题。。 就二分一下最长的那一段的长度。 然后O(n)判断一下。第二问不简单。。 求方案诶。 我以前拿60分的时候打的是Dp。。 f[i][j]表示前i个分成j段切最长长度不大于第一问的答案的方案数。 那么继承就为f[k][j-1],k为上一段的结尾且满足k到i这一段木棍长度小于第一问的答原创 2017-10-12 08:21:03 · 424 阅读 · 0 评论 -
bzoj3613: [Heoi2014]南园满地堆轻絮(二分+贪心)
题目传送门 。解法: 二分答案。 因为后面的元素要大于等于前面的元素。 那么我们使得前面的元素在满足答案的情况下尽量的小就行。 这样后面的元素选择的余地就更大。贪心一下咯。代码实现:#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>...原创 2018-04-12 11:44:17 · 201 阅读 · 0 评论