poj-3281【最大流】
来源:互联网 发布:笔记本连接网络机顶盒 编辑:程序博客网 时间:2024/06/13 12:18
转换成最大流求解,刚开始看最大流,留着当模板#include <cstring>#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <vector>#include <string>#include <cmath>#define maxn 20#define Max 0x3f3f3f3fusing namespace std;struct node{ int to; int value; int pos;};vector<node>G[405];bool used[405];int leve[405];int lazy[405];void addnode(int from,int to,int val){ G[from].push_back((node){to,val,G[to].size()}); G[to].push_back((node){from,0,G[from].size()-1});}int bfs(int s){ memset(leve,-1,sizeof(leve)); leve[s]=0; queue<int>que; que.push(s); while(!que.empty()) { int now=que.front(); que.pop(); for (int i=0;i<G[now].size();i++) { node &tag=G[now][i]; if (tag.value>0&&leve[tag.to]<0) { leve[tag.to]=leve[now]+1; que.push(tag.to); } } }}int dfs(int v,int t,int f){ if (v==t)return f; for (int & i=lazy[v];i<G[v].size();i++) { node & now=G[v][i]; if (now.value>0&&leve[v]<leve[now.to]) { int tag=dfs(now.to,t,min(f,now.value)); if (tag>0) { now.value-=tag; G[now.to][now.pos].value+=tag; return tag; } } } return 0;}int Maxflow(int s,int t){ int flow=0; for(;;) { bfs(s); if (leve[t]<0) { return flow; } int f; memset(lazy,0,sizeof(lazy)); while((f=dfs(s,t,Max))>0) { flow+=f; } }}int main(){ int n,k,d; int a,b,c,all; while(scanf("%d %d %d",&n,&k,&d)!=EOF) { all=n+k+d+n+1; for (int i=0;i<405;i++) { G[i].clear(); } for (int i=1;i<=k;i++)//食物跟源点连边 { addnode(0,i,1); } for (int i=1;i<=n;i++)//牛连边 { addnode(k+i,k+i+n,1); } for (int i=1;i<=d;i++) { addnode(k+n+n+i,all,1); } for (int i=1;i<=n;i++) { scanf("%d %d",&a,&b); while(a--) { scanf("%d",&c); addnode(c,k+i,1); } while(b--) { scanf("%d",&c); addnode(k+n+i,k+2*n+c,1); } } int num=Maxflow(0,all); printf("%d\n",num); } return 0;}
0 0
- poj 3281 最大流
- poj 3281 最大流
- poj 3281 最大流
- poj 3281(最大流)
- poj-3281【最大流】
- POJ 3281:最大流
- poj 3281 Dining 【最大流】
- poj 3281 (最大流,构图)
- poj 3281 Dining(最大流)
- POJ 3281 Dining(最大流)
- poj 3281 Dining 最大流
- poj 3281 Dining (最大流)
- poj 3281 Dining 【最大流】
- poj 3281 Dining (最大流)
- poj 3281 Dining 最大流
- POJ 3281 Dining 最大流
- poj--3281-- DiningI(最大流)
- poj 3281 Dining(最大流)
- office各个版本、visio各个版本、windows各个版本以及project各个版本资源(ISO文件即官方原版镜像)
- 详细的gcc三级优化
- secureCRT使用VIM(SSH)时对语法高亮
- 猿题库 iOS 客户端架构设计
- 华为手机调试安卓程序不打印Log的解决办法
- poj-3281【最大流】
- 蓝桥基础练习 01字串
- DON4j解析XML
- 最全的常用正则表达式
- 票据交易平台为何需要央行特急发文
- C#超基础:enum类型的使用
- [struts2]struts2的validation.xml配置不起作用的常见原因
- oracle 实现分页
- 简单直白教你理解Java中四大引用强引用,软引用,弱引用,虚引用