vis[0]没有清零查一年…

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 55555
#define M 3666666
int n,m,xx,yy,first[N],vis[N],nxt[M],v[M],w[M],tot,all,jy,ed,ans,cur[N],q[M],head,tail;
void Add(int x,int y,int z){}
void add(int x,int y,int z){
w[tot]=z,v[tot]=y,nxt[tot]=first[x],first[x]=tot++;
w[tot]=0,v[tot]=x,nxt[tot]=first[y],first[y]=tot++;
}
bool tell(){
for(int i=1;i<=ed;i++)vis[i]=-1;
head=tail=0;
while(head<=tail){
int t=q[head++];
for(int i=first[t];~i;i=nxt[i])
if(!~vis[v[i]]&&w[i])
vis[v[i]]=vis[t]+1,q[++tail]=v[i];
}
return ~vis[ed];
}
int zeng(int x,int y){
if(x==ed)return y;
int r=0;
for(int i=cur[x];~i&&y>r;i=nxt[i])
if(vis[v[i]]==vis[x]+1&&w[i]){
int t=zeng(v[i],min(w[i],y-r));
w[i]-=t,w[i^1]+=t,r+=t;
if(w[i]>0)cur[x]=i;
}
if(!r)vis[x]=-1;
return r;
}
inline int read(){
int x=0;char p=getchar();
while(p<'0'||p>'9')p=getchar();
while(p>='0'&&p<='9')x=x*10+p-'0',p=getchar();
return x;
}
int main(){
memset(first,-1,sizeof(first));
scanf("%d%d",&n,&m),ed=n+m+1;
for(int i=1;i<=n;i++){
xx=read(),jy=read();
all+=xx,add(0,i,xx);
while(jy--)xx=read(),yy=read(),add(i,xx+n,yy);
}
for(int i=1;i<=m;i++)xx=read(),add(i+n,ed,xx);
while(tell()){
for(int i=0;i<=ed;i++)cur[i]=first[i];
while(jy=zeng(0,0x3fffffff))ans+=jy;
}
printf("%d\n",all-ans);
}

BZOJ 1391 网络流的更多相关文章

  1. Bzoj 1391: [Ceoi2008]order 网络流,最大权闭合图

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1105  Solved: 331[Submit][Statu ...

  2. BZOJ 1391 [CEOI] Order - 网络流 最大流

    Solution 非常简单的建边!!! 但是刚开始的代码不够体现社会主义的优越性, 于是我 .... 惨痛教训啊... 终于到了今天才能够体现社会主义优越性... Code #include<c ...

  3. BZOJ 1391 [Ceoi2008]order

    1391: [Ceoi2008]order Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完 ...

  4. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

  5. BZOJ 2929 网络流

    题意是啥--. 思路: 不是与1或n连起来的边 边权是1 否则是inf 跑网络流 //By SiriusRen #include <queue> #include <cstdio&g ...

  6. BZOJ 1797 网络流的可行边&必须边

    求完网络流以后 tarjan一发 判一判 //By SiriusRen #include <queue> #include <bitset> #include <cstd ...

  7. BZOJ 3931 (网络流+最短路)

    题面 传送门 分析 考虑网络流 注意到数据包走的是最短路,所以我们只需要考虑在最短路上的边 由于最短路可能有多条,我们先跑一遍Dijkstra,然后再\(O(m)\) 遍历每条边(u,v,w) 如果d ...

  8. bzoj 1391

    建图跑最小割,加当前弧优化. #include<iostream> #include<cstdio> #include<cstring> #include<q ...

  9. bzoj 1458 网络流

    我们可以知道每行最多可以有多少个格子不用建点,设为x[i],每列同理设为y[i],那么我们连接(source,i,x[i]),(i,sink,y[i])表示我们将一个格子不建点,那么(i,j,flag ...

随机推荐

  1. aliyun Ubuntu 14.04 64bit OpenJDK Tomcat7 install

    my work environment: aliyun Ubuntu 14.04 64位 first phase:apt-get update    (it is very important,oth ...

  2. 换今日特价图片---轻开电子商务系统(企业入门级B2C站点)

    跟换主页轮播图片一样,一共4个文件: 列表显示文件:site/links/img2.html 加入图片文件:site/links/img2_add.html 加入保存图片文件:site/links/i ...

  3. Android_通过Bugtags平台,方便測试人员提交bug及整个bug系统的管理

    Bugtags 是什么? Bugtags 是一款缺陷发现及管理工具. 当您的 App 集成了 Bugtags SDK 后,測试人员就可直接在 App 里所见即所得的提交 Bug. SDK 会自己主动截 ...

  4. Qt Quick Controls 与 Qt Quick Controls 2的区别(详细对照)

    Qt Quick Controls 原本是为支持桌面平台而开发的,后来又加入了移动平台和嵌入式平台的支持.它们应用非常广泛,因为它们提供了足够灵活的样式系统,以允许开发具有平台相关或者无关风格的应用程 ...

  5. ICMP 隧道——将流量封装进 IMCP 的 ping 数据包中,旨在利用 ping 穿透防火墙的检测

    利用 ICMP 隧道穿透防火墙 转自:http://xiaix.me/li-yong-icmp-sui-dao-chuan-tou-fang-huo-qiang/ 以前穿透防火墙总是使用 SSH 隧道 ...

  6. PyCharm基本设置、常用快捷键

    1. 下载安装 PyCharm官方下载地址:  https://www.jetbrains.com/pycharm/download/index.html#section=windows 安装完成后在 ...

  7. PJNATH介绍 -- 开源的用于NAT穿透的ICE, STUN和TURN

    原文地址:http://blog.pjsip.org/2007/04/06/introducing-pjnath-open-source-ice-stun-and-turn/ ICE是什么? 对于那些 ...

  8. Pcap 数据报解析

    最近看了一下网络的书,信息系统也有实验任务,所以就学习了一下pcap包的解析. 主要是对内部以太网帧头,ip头部,tcp头部或者udp头部的解析.我因为用访问google.cn作为的样例,没有udp包 ...

  9. PHP正则表达式函数总结

    /* 测试环境:PHP5.3.29(PCRE8.32) */ 常用函数:(正则表达式规则基本同JS_RE_Read.txt) PS:1.PHP中的PCRE一般仅使用这三个修饰符:"i&quo ...

  10. 001.ActiveMQ概述

    1. 概念 ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware ...