二分
ToheartZhang
这个作者很懒,什么都没留下…
展开
-
【分数规划总结】周测图论1 环 & CODEVS 1183 泥泞的道路
(s1+s2+…+sn)/(t1+t2+…+tn) = ans 即s1-t1*ans+s2-t2*ans+…+sn-tn*ans = 0 当需求比值解时考虑分数规划,二分答案求解。根据题目要求向上二分或向下二分,利用spfa判正/负环。 环 定义环的伸展度为这个环上所有边的距离之和与环上边的总数的比值,给出一个n个节点,m条边的有向图,每条边有一个属性距离,求图中伸展度最小的有原创 2017-05-24 14:09:36 · 316 阅读 · 0 评论 -
CODEVS 2144 砝码称重2
//二分dfs,最后合并 #include<bits/stdc++.h>using namespace std;const int maxn = 400000; int n, m, tot1, tot2, a[31];int ans = 0x3f3f3f3f;struct node{ int num, w;} hash1[maxn], hash2[maxn];bool cmp(原创 2017-05-10 14:11:17 · 282 阅读 · 0 评论 -
周测3 T2 航模
选择二分答案求解,注意无向边!!!!!#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<iostream>using namespace std;int maxn;int n, m, k, t;struct node{ int to, dist;};int sum[100010];原创 2017-05-31 10:48:43 · 413 阅读 · 0 评论 -
NOIP2015 Day2 T1 跳石头
一道让我心态崩盘的题,以后坚决贯彻落实左开右闭原则,尤其是初始化r时要加1!!!!!!!!!!!!浪费一下午!!!#include<cstdio>#include<iostream>using namespace std;const int maxn = 50010;int n, m;int l, d[maxn];bool check(int mid){ int t = 0, su原创 2017-07-22 16:36:30 · 274 阅读 · 0 评论 -
NOIP2012 Day2 T2 借教室
碰到区间问题要想到差分。 此题一开始想成[1, n]二分,原因是读题不认真,题目要求按订单一个个顺序判断,只要有一个不符合就打回去,不用管后面的,所以是[1, m]满足单调性,故二分订单。#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn = 1000010;int n原创 2017-07-23 16:05:46 · 349 阅读 · 0 评论 -
NOIP2011 Day2 T2 聪明的质监员
W越大,Y越小,所以可以二分W使Y接近S。 少用min、abs可以让思路更清晰。#include<cstdio>#include<cstring>#include<cmath>#include<iostream>using namespace std;const int maxn = 200010;int n, m, num[maxn];int mw;long long s, su原创 2017-07-23 20:41:27 · 318 阅读 · 0 评论 -
洛谷 2680 运输计划
//二分+倍增LCA+树上前缀和//尽力缩小二分范围,能多拿分就多拿分//掌握树上前缀和的初始化和区间修改 //读入优化//二分答案,然后找出超出mid的计划,记录他们的公共重边,这里用树上前缀和找前缀和exc==超出计划数 的最大的边,删掉后再判断是否<=mid。 #include<bits/stdc++.h>using namespace std;const int inf = 0原创 2017-08-24 17:12:41 · 363 阅读 · 0 评论 -
CodeVS 3012 & 3037 线段覆盖4 & 5
//dp[i]表示到枚举完i时的最优解//二分找前面的线段进行转移//!!!二分时将符合的答案先记下来以备作为结果,以l为答案会错 #include<bits/stdc++.h>using namespace std;const int maxn = 1000010;int n;long long dp[maxn];struct node{ long long l, r;原创 2017-08-26 22:04:34 · 276 阅读 · 0 评论 -
HAOI 2008 木棍分割
//需要优化很多的DP,包括预处理前缀和,滚动数组,预处理可转移状态 #include<bits/stdc++.h>using namespace std;const int moder = 10007;const int maxn = 50010;const int inf = 0x3f3f3f3f;int n, m, tmp;int f[maxn], a[maxn], last[m原创 2017-08-28 10:59:18 · 352 阅读 · 0 评论