poj 3228(二分+最大流)
题目链接:http://poj.org/problem?id=3228
思路:增设一个超级源点和一个超级汇点,源点与每一个gold相连,容量为gold数量,汇点与仓库相连,容量为仓库的容量,然后就是二分最小的最大相邻距离,跑最大流验证即可。最大流用的是别人的Dinic模版。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define MAXN 222
#define inf 1<<30 int vs,vt;
int dep[MAXN];
int map[MAXN][MAXN]; int gold[MAXN],store[MAXN];
int dist[MAXN][MAXN];
void Build_Map(int limit,int n)
{
memset(map,,sizeof(map));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(dist[i][j]<=limit)map[i][j]=inf;
for(int i=;i<=n;i++){
map[vs][i]=gold[i];
map[i][vt]=store[i];
}
} int BFS(){
queue<int> q;
while(!q.empty())
q.pop();
memset(dep,-,sizeof(dep));
dep[vs]=;
q.push(vs);
while(!q.empty()){
int u=q.front();
q.pop();
for(int v=vs;v<=vt;v++)
if(map[u][v]> && dep[v]==-){
dep[v]=dep[u]+;
q.push(v);
}
}
return dep[vt]!=-;
} int DFS(int u,int minx){
if(u==vt)
return minx;
int tmp;
for(int v=vs;v<=vt;v++)
if(map[u][v]> && dep[v]==dep[u]+ && (tmp=DFS(v,min(minx,map[u][v])))){
map[u][v]-=tmp;
map[v][u]+=tmp;
return tmp;
}
dep[u]=-;
return ;
} int Dinic(){
int ans=,tmp;
while(BFS()){
while(){
tmp=DFS(vs,inf);
if(tmp==)
break;
ans+=tmp;
}
}
return ans;
} int main()
{
int total,n,m,a,b,c;
while(~scanf("%d",&n)){
if(n==)break;
total=,vs=,vt=n+;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
dist[i][j]=inf;
for(int i=;i<=n;i++){
scanf("%d",&gold[i]);
total+=gold[i];
}
for(int i=;i<=n;i++)scanf("%d",&store[i]);
scanf("%d",&m);
while(m--){
scanf("%d%d%d",&a,&b,&c);
dist[a][b]=dist[b][a]=c;
} int low=,high=,mid,ans=-;
while(low<=high){
mid=(low+high)>>;
Build_Map(mid,n);
if(Dinic()==total){
ans=mid;
high=mid-;
}else
low=mid+;
}
if(ans==-){
printf("No Solution\n");
}else
printf("%d\n",ans);
}
return ;
}
poj 3228(二分+最大流)的更多相关文章
- POJ 3228 二分最大流
题意: 给你N个位置,每个位置都有金矿数量和仓库数量,然后位置和位置之间的距离给了出来,最后问你吧所有的金矿都放到库里面走的路径 最长的最短 是多少? 思路: 比较简单的一个题, ...
- poj 2455 二分+最大流
这个因为点少用邻接矩阵做的. 题意:求由1到n的t条不重复路径中最大边权值的最小值. 思路:先对边权进行排序,然后二分边权值,建图求从1到n的最大流,当最大流为t时便求出答案. 代码: #includ ...
- POJ 2112 二分+最大流
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 17297 Accepted: 6203 ...
- POJ 2391 二分+最大流
Ombrophobic Bovines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19066 Accepted: 4 ...
- poj 2391 Ombrophobic Bovines 最短路 二分 最大流 拆点
题目链接 题意 有\(n\)个牛棚,每个牛棚初始有\(a_i\)头牛,最后能容纳\(b_i\)头牛.有\(m\)条道路,边权为走这段路所需花费的时间.问最少需要多少时间能让所有的牛都有牛棚可待? 思路 ...
- uvalive 3231 Fair Share 公平分配问题 二分+最大流 右边最多流量的结点流量尽量少。
/** 题目: uvalive 3231 Fair Share 公平分配问题 链接:https://vjudge.net/problem/UVALive-3231 题意:有m个任务,n个处理器,每个任 ...
- POJ - 2018 二分+单调子段和
依然是学习分析方法的一道题 求一个长度为n的序列中的一个平均值最大且长度不小于L的子段,输出最大平均值 最值问题可二分,从而转变为判定性问题:是否存在长度大于等于L且平均值大于等于mid的字段和 每个 ...
- HDU3081 Marriage Match II —— 传递闭包 + 二分图最大匹配 or 传递闭包 + 二分 + 最大流
题目链接:https://vjudge.net/problem/HDU-3081 Marriage Match II Time Limit: 2000/1000 MS (Java/Others) ...
- HDU-3081-Marriage Match II 二分图匹配+并查集 OR 二分+最大流
二分+最大流: 1 //题目大意:有编号为1~n的女生和1~n的男生配对 2 // 3 //首先输入m组,a,b表示编号为a的女生没有和编号为b的男生吵过架 4 // 5 //然后输入f组,c,d表示 ...
随机推荐
- virtualbox下 ubuntu 14.04设置外网独立IP
安装时记得选择sshserver vim /etc/network/interfaces iface eth0 inet static address YOUR IP netmask 子网掩码 get ...
- 分享C#原生ID(流水号)生成功能实现
///, , )).TotalMilliseconds.ToString(")); /// <summary> /// /// </summ ...
- JSON WEB TOKENS
用JWT来保护我们的ASP.NET Core Web API 在上一篇博客中,自己动手写了一个Middleware来处理API的授权验证,现在就采用另外一种方式来处理这个授权验证的问题,毕竟现在也 ...
- 网络攻防工具介绍——Wireshark
网络攻防工具介绍 Wireshark 简介 Wireshark(前称Ethereal)是一个网络封包分析软件.它是一个理想的开源多平台网络协议分析工具.网络封包分析软件的功能是撷取网络封包,并尽可能显 ...
- Notes of the scrum meeting(12.8)
meeting time:18:00~18:30p.m.,December 8th,2013 meeting place:20号公寓前 attendees: 顾育豪 ...
- Careercup - Microsoft面试题 - 6543214668414976
2014-05-11 02:56 题目链接 原题: Write a function called FooBar that takes input integer n and prints all t ...
- 学习ThinkPHP-1
ThinkPHP 自建路由 关于文件关联 当在Applicatin\Home\Controller文件夹下建立一个控制器时如LoginController.class.php 在此文件夹下还有一个默认 ...
- Spring 静态资源配置
ShineJaie 原创整理,转载请注明出处. 一.为何要配置静态资源 1.在配置 Spring 的时候,我们配置的拦截是"/",即任何文件都会经 Spring 拦截处理. 2.实 ...
- python-面向对象(股票对象举例)
股票对象实例 class Stock(object): def __init__(self,stockCode ,stockName,averagePrice_yesterday,averagePri ...
- hdu 2686 Matrix 最小费用最大流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2686 Yifenfei very like play a number game in the n*n ...