
二分
wzf_2000
这个作者很懒,什么都没留下…
展开
-
【bzoj1305】[CQOI2009]dance跳舞
这题比较显然的网络流 先考虑建图: 男生向他的镜像节点连一条容量为kk的边。 女生的镜像节点向她连一条容量为kk的边。 男生节点向每一个喜欢的女生连一条容量为11的边。 男生镜像向不喜欢的女生镜像连一条容量为11的边。 S向每个男生节点连一条容量待定的边。 每个女生节点向T连一条容量相同的边。 两种方法: 二分答案midmid,设置源汇连边容量为midmid,跑最大流,如果flow原创 2017-08-05 09:14:58 · 297 阅读 · 0 评论 -
【Codeforces845E】Fire in the City
题意: 一个火源第ii秒形成的火区是一个边长为2i+12i+1的正方形 在n×mn×m的网格中,问已知kk个火源,再加一个之后(由你选),问最少的时间可以将所有区域变为火区。首先最少时间肯定需要二分midmid,然后每个火区的关键点就只有4个。离散化后可以二维差分一下算出最上、下、左、右的四个没有被烧到的关键点。看看和midmid之间的关系就好了。#include <bits/stdc++.h>原创 2017-09-27 09:49:42 · 667 阅读 · 0 评论 -
【Codeforces150E】Freezing with Style
题意:求树上路径长度在[L,R][L,R]之间的中位数最大的路径(长度为偶数取后面(较大)那个)。显然需要二分midmid,然后val>=midval>=mid的边赋值为1,否则赋值为-1。问题转化为树上是否存在路径长度在[L,R][L,R]的路径路径和大于等于零。 这个可以树分治。每条路径都并定在某层的重心。所以考虑怎么求出rtrt的不同子树中,是否存在两点满足要求。 第一想法是按某种顺序枚举原创 2017-09-29 19:19:18 · 377 阅读 · 0 评论 -
【Codeforces875E】Delivery Club
首先二分答案,然后从后往前跑目的地维护可存在的区间。区间不存在或者开始点不在最终区间就不行,否则可以。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 100009#define mid (l+r>>1)using namespace std;int n,s,t,a[N];int read原创 2017-10-26 14:50:32 · 836 阅读 · 0 评论