没想到今天早上的第一题网络流就血了这么多发

从经典的二选一问题上魔改 仍然考虑最小割

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 163840, MAXN = 2602144;
#define reset(x) memset(x,0,sizeof x)
namespace solver {
struct graph {
int n,m,M,S,T,head[N],cur[N],dep[N],gap[N],q[N];
long long ans;
struct ed {
int to,nxt,val;
} edge[MAXN];
void init(int n0,int m0,int S0,int T0) {
n=n0,m=m0,S=S0,T=T0,M=1,reset(gap);
reset(head),reset(cur),reset(dep),reset(q);
}
void make(int u,int v,int w) {
edge[++M]=(ed) {v,head[u],w},head[u]=M;
}
int dfs(int u,int mx) {
if (u==T)
return mx;
int num=0,f;
for (int &i=cur[u],v; i; i=edge[i].nxt)
if (dep[v=edge[i].to]==dep[u]-1 && (f=edge[i].val))
if (edge[i].val-=(f=dfs(v,min(mx-num,f))), edge[i^1].val+=f, (num+=f)==mx)
return num;
if (!--gap[dep[u]++])
dep[S]=n+1;
return ++gap[dep[u]],cur[u]=head[u],num;
}
void solve() {
for (int i=1; i<=n; ++i)
cur[i]=head[i];
ans=0;
for (gap[0]=n; dep[S]<=n; ans+=dfs(S,0x7fffffff));
}
} g; int n,m,S,T,t1,t2,t3; void init() {
g.init(n,m,S,T);
} int solve() {
g.solve();
return g.ans;
} void make(int t1,int t2,int t3) {
g.make(t1,t2,t3);
g.make(t2,t1,0);
}
} // namespace solver int n,a[10005],b[10005],m,c[10005][2]; signed main() {
int ans = 0;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i], ans+=a[i];
for(int i=1;i<=n;i++) cin>>b[i], ans+=b[i];
cin>>m;
solver::n = n+m*2+2;
solver::S = n+m*2+1;
solver::T = n+m*2+2;
solver::init();
for(int i=1;i<=n;i++) solver::make(n+m*2+1, i, a[i]);
for(int i=1;i<=n;i++) solver::make(i, n+m*2+2, b[i]);
for(int i=1;i<=m;i++) {
int k;
cin>>k>>c[i][0]>>c[i][1];
ans += c[i][0] + c[i][1];
solver::make(n+m*2+1, n+i*2-1, c[i][0]);
solver::make(n+i*2, n+m*2+2, c[i][1]);
while(k--) {
int tmp;
cin>>tmp;
solver::make(n+i*2-1,tmp,2e9+10);
solver::make(tmp,n+i*2,2e9+10);
}
}
cout<<ans - solver::solve()<<endl;
}

最新文章

  1. LogBack简易教程
  2. ::before和::after伪元素的用法
  3. [转载]Matlab生成Word报告
  4. hdu 2047 阿牛的EOF牛肉串
  5. 二维码(支持arc,苹果自带扫描,zbar扫描,二维码生成)
  6. 【HDOJ】【4405】Aeroplane chess飞行棋
  7. 【和我一起学python吧】Python 启航
  8. C++中new和不new的区别
  9. Oracle Quality --- Setup Collection Element and Collection Plan
  10. 个性化定制——物流app
  11. 在SAE上搭建自定义版本WordPress, 并用SAE Storage代替WordPress Uploads
  12. 浅谈数据结构之KMP(串中的模式匹配算法)
  13. 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
  14. Microsoft SQL - 查询与更新
  15. 大数据处理框架之Strom: Storm----helloword
  16. winform:对dataGridView绑定的泛型List&lt;T&gt; 的简单CRUD
  17. 【Python项目】爬取新浪微博签到页
  18. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置(转)
  19. css3实现卷页效果http://jingyan.baidu.com/article/73c3ce2806aef9e50343d93a.html
  20. December 21st 2016 Week 52nd Wednesday

热门文章

  1. StarUML之六、StarUML规则与快捷键
  2. Cesium动态绘制实体(点、标注、面、线、圆、矩形)
  3. MySQL 8 InnoDB Table 和 Page 压缩
  4. 关于PHP连接上MySQL但不能插入数据
  5. 关于apt-get remove 与 apt-get purge
  6. P4392 [BOI2007]Sound 静音问题
  7. 经济学人精读笔记7:动乱当道,你还想买LV吗?
  8. 用Markdown编写
  9. maven 3.6.3 安装及配置
  10. PTA 汉诺塔的非递归实现(C 语言)