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 经典建模的更多相关文章

  1. HDU1045(二分图经典建模)

    Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  2. Wolsey“强整数规划模型”经典案例之一单源固定费用网络流问题

    Wolsey“强整数规划模型”经典案例之一单源固定费用网络流问题 阅读本文可以理解什么是“强”整数规划模型. 单源固定费用网络流问题见文献[1]第13.4.1节(p229-231),是"强整 ...

  3. 「国庆训练&知识学习」图的最大独立集与拓展(Land of Farms,HDU-5556)

    题意 一个\(N*M\)的矩阵,其中"."代表空地,"0-9"代表古代建筑,我们如果选择了一个编号的古代建筑想要建立,那么对应就要将全部该编号的建筑建立起来,如 ...

  4. 【bzoj1976】[BeiJing2010组队]能量魔方 Cube 网络流最小割

    题目描述 一个n*n*n的立方体,每个位置为0或1.有些位置已经确定,还有一些需要待填入.问最后可以得到的 相邻且填入的数不同的点对 的数目最大. 输入 第一行包含一个数N,表示魔方的大小. 接下来 ...

  5. 网络流24题:P2762 太空飞行计划问题

    P2762 太空飞行计划问题 题目背景 题目描述 W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,…,E ...

  6. BZOJ3532 [Sdoi2014]Lis 【网络流退流】

    题目 给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci.请删除若 干项,使得4的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案. 如果有多种方案,请输出将删去项的附加属性排序 ...

  7. UVA11082 Matrix Decompressing 最大流建模解矩阵,经典

    /** 题目:UVA11082 Matrix Decompressing 链接:https://vjudge.net/problem/UVA-11082 题意:lrj入门经典P374 已知一个矩阵的行 ...

  8. poj1149最大流经典构图神题

    题意:n个顾客依次来买猪,有n个猪房,每个顾客每次可以开若干个房子,买完时,店主可以调整这位顾客 开的猪房里的猪,共m个猪房,每个猪房有若干猪,求最多能卖多少猪. 构图思想:顾客有先后,每个人想要的猪 ...

  9. 余胜威《MATLAB数学建模经典案例实战》2015年版

    内容介绍 本书全面.系统地讲解了数学建模的知识.书中结合历年全国大学生数学建模竞赛试题,采用案例与算法程序相结合的方法,循序渐进,逐步引导读者深入挖掘实际问题背后的数学问题及求解方法.在本书案例的分析 ...

随机推荐

  1. js 运动函数篇 (一) (匀速运动、缓冲运动、多物体运动、多物体不同值运动、多物体多值运动)层层深入

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS写 匀速运动.缓冲运动.多物体运 ...

  2. js高阶函数的理解

    高阶函数:英文叫Higher-order function.JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数 ...

  3. kafka-eagle监控kafka

    最近想做一个kafka监控,本来准备用zabbix来监控的,需要重复造轮子,本来准备用kafka-Manager的,在GitHub上无意发现了kafka-eagle,看了官方介绍准备试一下..... ...

  4. springboot rabbitmq 找不到队列

    错误报告: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to ...

  5. Android 开发技术周报 Issue#278

    新闻 Pixel 4a渲染图曝光:或能成新款iPhone SE有力竞争者 Google Play商店为预注册的游戏和应用提供自动安装功能 Android最强单摄Pixel 4a样张曝光:1200万像素 ...

  6. MongoDB 部署以及操作

    目录 1.MongoDB简介 2.MongoDB优势 3.MongoDB安装 3.MongoDB用户管理 3.1.Mongodb创建超级管理员 3.2.MongoDB创建读写用户 3.3.Moongo ...

  7. Spring Boot入门系列(十三)如何实现事务

    前面介绍了Spring Boot 中的整合Mybatis并实现增删改查.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1 ...

  8. High Card Low Card G(田忌赛马进阶!!)

    传送门 \(首先一定要明确一个观点,不然会完全没有思路\) \(\bullet\)\(由于前半段大的更优,后半段小的更优.\) \(\bullet\)\(所以,\)Bessie\(一定会在前(n/2) ...

  9. H - Buy Tickets POJ - 2828 逆序遍历 树状数组+二分

    H - Buy Tickets POJ - 2828 这个题目还是比较简单的,其实有思路,不过中途又断了,最后写了一发别的想法的T了. 然后脑子就有点糊涂,不应该啊,这个题目应该会写才对,这个和之前的 ...

  10. Java 常用API(一)

    目录 Java 常用API(一) 1. Scanner类 引用类型的一般使用步骤 Scanner的使用步骤 例题 2. 匿名对象 概述 匿名对象作为方法的参数 匿名对象作为方法的返回值 3. Rand ...