poj1149 经典建模
















http://wenku.baidu.com/view/0ad00abec77da26925c5b01c.html 以上内容均为转载
#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
const int INF=;
vector<int>G[];
bool mp[N][N],used[];
int tot,head[N],dis[N],st,ed,val[],sum[N];
struct node{
int to,next,w;
}e[N*N*];
void init(){
tot=;
memset(head,-,sizeof(head));
}
void add(int u,int v,int w){
e[tot].to=v;
e[tot].w=w;
e[tot].next=head[u];
head[u]=tot++;
}
bool bfs(){
memset(dis,-,sizeof(dis));
queue<int>Q;
Q.push(st);
dis[st]=;
while(!Q.empty()){
int u=Q.front();
Q.pop();
for(int i=head[u];i+;i=e[i].next){
int v=e[i].to;
if(dis[v]==-&&e[i].w>){
dis[v]=dis[u]+;
if(v==ed) return true;
Q.push(v);
}
}
}
return false;
}
int dfs(int s,int low){
if(s==ed||low==) return low;
int ans=low,a;
for(int i=head[s];i+;i=e[i].next){
int v=e[i].to;
if(dis[v]==dis[s]+&&e[i].w>&&(a=dfs(v,min(ans,e[i].w)))){
ans-=a;
e[i].w-=a;
e[i^].w+=a;
if(!ans) return low;
}
}
if(low==ans) dis[s]=-;
return low-ans;
}
int main(){
int n,m,x,num;
while(scanf("%d%d",&n,&m)!=EOF){
st=;ed=m+;
memset(sum,,sizeof(sum));
for(int i=;i<=n;++i) G[i].clear();
for(int i=;i<=n;++i) scanf("%d",val+i);
memset(used,,sizeof(used));
init();
for(int i=;i<=m;++i) {
scanf("%d",&num);
while(num--){
scanf("%d",&x);
if(!used[x]) {used[x]=;sum[i]+=val[x];}
G[x].push_back(i);
}
scanf("%d",&x);
add(i,ed,x);
add(ed,i,);
}
memset(mp,,sizeof(mp));
for(int i=;i<=n;++i){
for(int j=;j<(int)G[i].size();++j){
if(!j&&!mp[][G[i][j]]) {
mp[G[i][j]][]=mp[][G[i][j]]=;
add(,G[i][j],sum[G[i][j]]);
add(G[i][j],,);
}
else if(!mp[G[i][]][G[i][j]]) {
add(G[i][],G[i][j],INF);
add(G[i][j],G[i][],);
mp[G[i][]][G[i][j]]=;
}
}
}
int ans=;
while(bfs()) ans+=dfs(,INF);
printf("%d\n",ans);
}
}
poj1149 经典建模的更多相关文章
- HDU1045(二分图经典建模)
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- Wolsey“强整数规划模型”经典案例之一单源固定费用网络流问题
Wolsey“强整数规划模型”经典案例之一单源固定费用网络流问题 阅读本文可以理解什么是“强”整数规划模型. 单源固定费用网络流问题见文献[1]第13.4.1节(p229-231),是"强整 ...
- 「国庆训练&知识学习」图的最大独立集与拓展(Land of Farms,HDU-5556)
题意 一个\(N*M\)的矩阵,其中"."代表空地,"0-9"代表古代建筑,我们如果选择了一个编号的古代建筑想要建立,那么对应就要将全部该编号的建筑建立起来,如 ...
- 【bzoj1976】[BeiJing2010组队]能量魔方 Cube 网络流最小割
题目描述 一个n*n*n的立方体,每个位置为0或1.有些位置已经确定,还有一些需要待填入.问最后可以得到的 相邻且填入的数不同的点对 的数目最大. 输入 第一行包含一个数N,表示魔方的大小. 接下来 ...
- 网络流24题:P2762 太空飞行计划问题
P2762 太空飞行计划问题 题目背景 题目描述 W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,…,E ...
- BZOJ3532 [Sdoi2014]Lis 【网络流退流】
题目 给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci.请删除若 干项,使得4的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案. 如果有多种方案,请输出将删去项的附加属性排序 ...
- UVA11082 Matrix Decompressing 最大流建模解矩阵,经典
/** 题目:UVA11082 Matrix Decompressing 链接:https://vjudge.net/problem/UVA-11082 题意:lrj入门经典P374 已知一个矩阵的行 ...
- poj1149最大流经典构图神题
题意:n个顾客依次来买猪,有n个猪房,每个顾客每次可以开若干个房子,买完时,店主可以调整这位顾客 开的猪房里的猪,共m个猪房,每个猪房有若干猪,求最多能卖多少猪. 构图思想:顾客有先后,每个人想要的猪 ...
- 余胜威《MATLAB数学建模经典案例实战》2015年版
内容介绍 本书全面.系统地讲解了数学建模的知识.书中结合历年全国大学生数学建模竞赛试题,采用案例与算法程序相结合的方法,循序渐进,逐步引导读者深入挖掘实际问题背后的数学问题及求解方法.在本书案例的分析 ...
随机推荐
- Spring5参考指南:Environment
文章目录 Profiles PropertySource 使用@PropertySource Spring的Environment接口有两个关键的作用:1. Profile, 2.properties ...
- LVS+Keepalived 实现高可用负载均衡集群
LVS+Keepalived 实现高可用负载均衡集群 随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5 ,Array又太贵,你们又是创业型互联公司如何有效 ...
- Netty(三):IdleStateHandler源码解析
IdleStateHandler是Netty为我们提供的检测连接有效性的处理器,一共有读空闲,写空闲,读/写空闲三种监测机制. 将其添加到我们的ChannelPipline中,便可以用来检测空闲. 先 ...
- golang 线上项目部署折腾之一
最近自己使用golang折腾了一点东西,可是需要部署到线上才好玩,那么服务器使用了aws,然后使用了docker和没有使用docker部署了一次.简单记录一下过程 aws服务器 为什么使用aws呢,说 ...
- 码云git本地仓库链接远程仓库
原文链接: 点我 git提交时,仓库是空的,本地有源码 应该打开cmd 归到项目路径 然后输入git push -u origin master -f 是把本地的项目强制推送到空的仓库 git ...
- C语言编程入门题目--No.11
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3, ...
- Java中常用的获取从当前月开始的前第i个月、取结束时间与开始时间相差多少个月份等的方法
@RunWith(SpringRunner.class) @SpringBootTest public class DateTest { @Test public void test(){ DateF ...
- 《Docker从入门到跑路》之镜像和容器的基本操作
一.获取镜像 官方提供了一个公共镜像仓库Docker Hub,默认是从这上面获取镜像的. 搜素镜像使用docker search 命令: # docker search --help Usage: d ...
- Envoy 基础教程:使用 Unix Domain Socket(UDS) 与上游集群通信
Envoy Proxy 在大多数情况下都是作为 Sidecar 与应用部署在同一网络环境中,每个应用只需要与 Envoy(localhost)交互,不需要知道其他服务的地址.然而这并不是 Envoy ...
- SQL SERVER 函数举例
需求说明 将字符串按照指定的分隔符进行分割,并将结果按照从后往前的顺序倒序排列,拼接后的结果用‘/’符连接.(也可以按照指定符号分割为多个列,修改最后一部分即可) 创建测试表及数据 /* 创建一张测试 ...