nyoj 310二分+dinic】的更多相关文章

#include<stdio.h> #include<queue> #include<string.h> using namespace std; #define inf 0x7fffffff #define N 300 int p,t,n; int Min(int a,int b) { return a>b?b:a; } struct node {    int u,v,w,f; }mp[40001]; int flow[N][N],d[N]; int bfs(…
poj 2391 Ombrophobic Bovines, 最大流, 拆点, 二分 dinic /* * Author: yew1eb * Created Time: 2014年10月31日 星期五 15时39分22秒 * File Name: poj2391.cpp */ #include <ctime> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring&g…
题意:       有n个猪圈,每个猪圈里面都有一定数量的猪(可能大于当前猪圈的数量),每个猪圈都有自己的容量,猪圈与猪圈之间给出了距离,然后突然下雨了,问多久之后所有的猪都能进圈. 思路:        先跑一遍Floyd求出任意两点之间的最短距离,对于时间,也就是答案,我们可以二分去找,然后对于每次二分,我们可以用DINIC去判断是否满足要求,建图的时候记得拆点,一开始我感觉不用抄点,但是都敲完了,发现不行,又重新建图了,拆成二分图,然后根据当前二分的值连边...这个题比较简单,没啥难点,就…
题目链接:http://poj.org/problem?id=2112 题目: 题意:有k台挤奶机,c头奶牛,每台挤奶机每天最多生产m的奶,给你每个物品到其他物品的距离(除了物品到自己本省的距离为0外,两者之间没有路线直接到达也为0,此时需要将距离处理为inf),问跑最远距离的奶牛要跑多远. 思路:先用floyd将各物品间的最短距离求出来,再二分跑最远距离的奶牛走的距离x,将小于x的两者之间进行连边,流量为1,引入一个超级源点和超级汇点,我们采用方向建图的方式,让超级源点与挤奶机连边,且流量为m…
题意: 思路: 二分跨度 枚举最低座次 建图:源点向每头牛连边权为1的边 每头牛向当前枚举的B的区间这段连上边权为1的边 所有座次向汇点连边权为牛棚容量的边 判判流量是不是等于n 一开始写得是直接枚举答案,在这个答案下枚举座次最低的值 T了.. (然后我看了一发数据 ) 数据中有这样一个点:1000 20 balabala 答案是20 这就很蛋疼了 我枚举了200次 略多 (虽然在我电脑上还是能1s之内跑出来 但是POJ评测机并不快啊) 我就把答案的那个20二分了一下 变成了6 枚举大概几十次…
SECRET 时间限制:3000 ms  |  内存限制:65535 KB 难度:6   描述 Dr.Kong is constructing a new machine and wishes to keep it secret as long as possible. He has hidden in it deep within some forest and needs to be able to get to the machine without being detected. He…
#include<stdio.h> #include<string.h> #define N 200 int Min(int a,int b) { return a>b?b:a; } int Max(int a,int b) { return a>b?a:b; } int map[N][N],flag,visit[N][N],n,min,max; int dis[4][2]={1,0,-1,0,0,1,0,-1}; void init() { int i,j; min=…
D1T1:潜入行动 裸的树上DP.f[i][j][0/1][0/1]表示以i为根的子树放j个设备,根有没有放,根有没有被子树监听,的方案数.转移显然. #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++) typedef long long ll; using namespace std; ,mod=1e9+; ll tmp[][][]; ][][],h[N],…
目录 day5 5H div2 Nested Tree (树形dp) 5F div2 Kropki (状压dp) 5J div1 Special Judge (计算几何) 5I div1 Sorting (线段树) 5D div1 Doppelblock (搜索) 5C div1 Division (主席树) 5E div1 Fast Kronecker Transform (NTTorFFT) day7 7G div1&2 抢红包机器人 (拓扑序) 7A div1 迷宫 (树 规律) 7E d…
题目大意是: K台挤奶机器,C头牛,K不超过30,C不超过200,每台挤奶机器最多可以为M台牛工作,给出这些牛和机器之间,牛和牛之间,机器与机器之间的距离,在保证让最多的牛都有机器挤奶的情况下,给出其中距离最长的一头牛移动距离的最小值. 首先用Floyd求出任意两点之间的最短距离,然后再用二分法限定最多的移动距离d,在求最大流时,搜索增广路的时候同时也判断距离有没有超过d就行了. #include <cstdio> #include <cstring> #include <q…