POJ2584 T-Shirt Gumbo——网络最大流模板
题目:http://poj.org/problem?id=2584
像模板一样的简单题。继续使用 & 的当前弧优化和神奇的构造函数。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n,head[],dfn[],cur[],l,r,mxflow,xnt,x,t;
const int INF=;
char tmp[],tm1,tm2;
struct Edge{
int next,to,cap;
Edge(int a=,int b=,int c=):next(a),to(b),cap(c) {}
}edge[];
queue<int> q;
int num(char c)
{
if(c=='S')return +n;if(c=='L')return +n;
if(c=='M')return +n;if(c=='X')return +n;if(c=='T')return +n;
}
bool bfs()
{
memset(dfn,,sizeof dfn);
while(!q.empty())q.pop();
dfn[]=;
q.push();
while(!q.empty())
{
int k=q.front();q.pop();
for(int i=head[k],v;i;i=edge[i].next)
if(!dfn[v=edge[i].to]&&edge[i].cap)
{
dfn[v]=dfn[k]+;
q.push(v);
if(v==t)break;
}
}
return dfn[t];
}
int dfs(int k,int flow)
{
if(k==t)return flow;
int used=;
for(int& i=cur[k],v;i;i=edge[i].next)
if(dfn[v=edge[i].to]==dfn[k]+&&edge[i].cap)
{
int tmp=dfs(v,min(flow-used,edge[i].cap));
if(!tmp)dfn[v]=;
used+=tmp;
edge[i].cap-=tmp;
edge[i^].cap+=tmp;
if(used==flow)return used;
}
return used;
}
int main()
{
while()
{
cin>>tmp;
if(tmp[]=='E')return ;
scanf("%d ",&n);
memset(head,,sizeof head);
t=n+;mxflow=;xnt=;
for(int i=;i<=n;i++)
{
edge[++xnt]=Edge(head[],i,);head[]=xnt;
edge[++xnt]=Edge(head[i],,);head[i]=xnt;
scanf("%c%c ",&tm1,&tm2);
l=num(tm1);r=num(tm2);
for(int j=l;j<=r;j++)
{
edge[++xnt]=Edge(head[i],j,);head[i]=xnt;
edge[++xnt]=Edge(head[j],i,);head[j]=xnt;
}
}
for(int i=+n;i<=+n;i++)
{
scanf("%d",&x);
edge[++xnt]=Edge(head[i],t,x);head[i]=xnt;
edge[++xnt]=Edge(head[t],i,);head[t]=xnt;
}
cin>>tmp;
while(bfs())
{
memcpy(cur,head,sizeof head);
mxflow+=dfs(,INF);
}
if(mxflow==n)
printf("T-shirts rock!\n");
else printf("I'd rather not wear a shirt anyway...\n");
}
}
POJ2584 T-Shirt Gumbo——网络最大流模板的更多相关文章
- 【Luogu】P3376网络最大流模板(Dinic)
最大流模板成为另一个被攻克的模板题. 今天QDC给我讲了一下Dinic,感觉很好懂.于是为了巩固就把这道题A掉了. 核心思想就是不断BFS分层,然后不断DFS找增广路.找不到之后就可以把答案累加输出了 ...
- P3376 网络最大流模板(Dinic + dfs多路增广优化 + 炸点优化 + 当前弧优化)
### P3376 题目链接 ### 这里讲一下三种优化的实现以及正确性. 1.dfs多路增广优化 一般的Dinic算法中是这样的,bfs() 用于标记多条增广路,以至于能一次 bfs() 出多次 d ...
- 图论算法-网络最大流【EK;Dinic】
图论算法-网络最大流模板[EK;Dinic] EK模板 每次找出增广后残量网络中的最小残量增加流量 const int inf=1e9; int n,m,s,t; struct node{int v, ...
- P3376 【模板】网络最大流
P3376 [模板]网络最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点 ...
- 洛谷 P3376 【【模板】网络最大流】
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行包含三个正整数ui. ...
- 洛谷 P3376 【模板】网络最大流
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- 洛谷——P3376 【模板】网络最大流
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- P3376 【模板】网络最大流dinic算法
P3376 [模板]网络最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点 ...
- 「LuoguP3376」 【模板】网络最大流
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
随机推荐
- sql 数据库显示 正在恢复
问题原因:Sql Server 一直显示正在恢复.有事务未恢复或者还原数据库造成 处理办法: 步骤一:数据库上右键->任务->分离 步骤二:数据库上右键->任务->脱机 数据库 ...
- zk如何实现watch
在客户端发送命令:stat /zhang watch 在zk server中产生如下图的调用栈: //在DataTree类中有 private final WatchManager dataWatch ...
- win7 安装express
1.以管理员身份打开cmd(避免出错) npm install -g express-generator@4 Start the server: npm start 链接,github官网说明 htt ...
- Python中变量、赋值、浅拷贝、深拷贝
https://www.cnblogs.com/LetMe/p/6724555.html 在理解浅拷贝和深拷贝之前,首先要理解学习一下变量在Python中是怎样存储的: 变量的类型是分值引用与地址引用 ...
- 蓝桥杯—ALGO-122 未名湖畔的烦恼(枚举)
问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了, 每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个. ...
- MySQL 中Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化
一.ICP优化原理 Index Condition Pushdown (ICP),也称为索引条件下推,体现在执行计划的上是会出现Using index condition(Extra列,当然Extra ...
- centos6:一个网卡上显示多个ip地址的错误
网卡显示如下: 上面显示em1有两个ip地址,其中36是设置的固定IP,212这个ip不清楚怎么搞出来的,但是通过212地址也能够正常连接主机.重启网卡之后,还是没有变化. 网卡em1配置如下,/e ...
- MyEclipse WebSphere开发教程:WebSphere 7安装指南(四)
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 六.管理配置文件 现在您已经安装了WebSphere 7的所有更新,您必须创建一个配置文 ...
- 【DevExpress v17.2新功能预告】WinForms上的图表增强
在WinForms Charts v17.2中,我们新增了一些有用的功能,开发人员和最终用户可能都会喜欢. 基于标准的过滤 Chart控件已经支持一系列的过滤,但是在这个版本中,我们用FilterCr ...
- jenkins自动化打包部署
请参考: http://m.blog.csdn.net/article/details?id=50518959 1.启动 jenkins.war ,打开首页 192.168.158.129:8080 ...