【最大权闭合子图/最小割】BZOJ3438-小M的作物【待填】
【题目大意】
/*还是TLE,回头看*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define S 0
#define T MAXN-1
using namespace std;
const int INF=0x7fffffff;
const int MAXN=+;
const int MAXM=+;
struct node
{
int fr,to,pos,cap;
};
int n,m,sum;
int dis[MAXN];
int vis[MAXN];
int cur[MAXN];
int first[MAXN],next[MAXM];
node edge[MAXM];
int tot=; int read() {
int x = ;
char ch = getchar();
while (ch < '' || '' < ch)
ch = getchar();
while ('' <= ch && ch <= '') {
x = x * + ch - '';
ch = getchar();
}
return x;
} void addedge(int u,int v,int c)
{
edge[++tot]=(node){u,v,tot+,c};
next[tot]=first[u];first[u]=tot;
edge[++tot]=(node){u,v,tot-,};
next[tot]=first[v];first[v]=tot;
} void build()
{
memset(first,-,sizeof(first));
memset(next,-,sizeof(next));
int ai,bi;
n=read();
for (int i=;i<=n;i++)
{
ai=read();
sum+=ai;
addedge(S,i,ai);
}
for (int i=;i<=n;i++)
{
bi=read();
sum+=bi;
addedge(i,T,bi);
}
m=read();
int k,c1i,c2i;
for (int i=;i<=m;i++)
{
k=read();c1i=read();c2i=read();
int u=n+i;
int v=n+i+m;
addedge(S,u,c1i);
addedge(v,T,c2i);
sum+=c1i+c2i;
for (int j=;j<=k;j++)
{
int ci;
ci=read();
addedge(u,ci,INF);
addedge(ci,v,INF);
}
}
} int bfs()
{
memset(dis,-,sizeof(dis));
int l=,r=;
int que[MAXN];
que[++r]=S;
dis[S]=; while (l<r)
{
int head=que[l];l++;
for (int i=first[head];i!=-;i=next[i])
{
node &tmp=edge[i];
if (dis[tmp.to]==- && tmp.cap>)
{
dis[tmp.to]=dis[head]+;
que[++r]=tmp.to;
}
}
}
return (dis[T]!=-);
} int dfs(int s,int t,int f)
{
vis[s]=;
if (s==t || !f) return f;
int res=;
for (int i=first[s];i!=-;i=next[i])
{
node &tmp=edge[i];
if (!vis[tmp.to] && tmp.cap> && dis[tmp.to]==dis[s]+)
{
int delta=dfs(tmp.to,t,min(tmp.cap,f));
if (delta>)
{
tmp.cap-=delta;
edge[tmp.pos].cap+=delta;
f-=delta;
res+=delta;
if (!f) return res;
}
}
}
return res;
} int dinic()
{
int flow=;
while (bfs())
{
memset(vis,,sizeof(vis));
flow+=dfs(S,T,INF);
}
return flow;
} int main()
{
build();
printf("%d\n",sum-dinic());
return ;
}
【最大权闭合子图/最小割】BZOJ3438-小M的作物【待填】的更多相关文章
- 洛谷 P4174 [NOI2006]最大获利 && 洛谷 P2762 太空飞行计划问题 (最大权闭合子图 && 最小割输出任意一组方案)
https://www.luogu.org/problemnew/show/P4174 最大权闭合子图的模板 每个通讯站建一个点,点权为-Pi:每个用户建一个点,点权为Ci,分别向Ai和Bi对应的点连 ...
- BZOJ 1565 / P2805 [NOI2009]植物大战僵尸 (最大权闭合子图 最小割)
题意 自己看吧 BZOJ传送门 分析 - 这道题其实就是一些点,存在一些二元限制条件,即如果要选uuu则必须选vvv.求得到的权值最大是多少. 建一个图,如果选uuu必须选vvv,则uuu向vvv连边 ...
- 【最大权闭合子图 最小割】bzoj1497: [NOI2006]最大获利
最大权闭合子图的模型:今天才发现dinic板子是一直挂的…… Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在 ...
- bzoj 1497 [NOI2006]最大获利【最大权闭合子图+最小割】
不要被5s时限和50000点数吓倒!大胆网络流!我一个5w级别的dinic只跑了1s+! 看起来没有最大权闭合子图的特征--限制,实际上还是有的. 我们需要把中转站看成负权点,把p看成点权,把客户看成 ...
- 洛谷 P2762 太空飞行计划问题 【最大权闭合子图+最小割】
--一道难在读入的题. 最后解决方案直接getline一行然后是把读优拆掉放进函数,虽然很丑但是过了. 然后就是裸的最大权闭合子图了,把仪器当成负权点向t连流量为其价格的边,s向实验连流量为实验报酬的 ...
- POJ 2987 Firing【最大权闭合图-最小割】
题意:给出一个有向图,选择一个点,则要选择它的可以到达的所有节点.选择每个点有各自的利益或损失.求最大化的利益,以及此时选择人数的最小值. 算法:构造源点s汇点t,从s到每个正数点建边,容量为利益.每 ...
- [luoguP2762] 太空飞行计划问题(最大权闭合图—最小割—最大流)
传送门 如果将每一个实验和其所对的仪器连一条有向边,那么原图就是一个dag图(有向无环) 每一个点都有一个点权,实验为收益(正数),仪器为花费(负数). 那么接下来可以引出闭合图的概念了. 闭合图是原 ...
- B1391 [Ceoi2008]order 最大权闭合图 最小割
啊啊啊,假的题吧!!!我用的当前弧优化T了6个点,其他人不用优化AC!!!震惊!!!当前弧优化是假的吧!!! 到现在我也没调出来...大家帮我看看为啥70.... 来讲一下这个题的思路,就是设一个源点 ...
- 洛谷 - P1361 - 小M的作物 - 最小割 - 最大权闭合子图
第一次做最小割,不是很理解. https://www.luogu.org/problemnew/show/P1361 要把东西分进两类里,好像可以应用最小割的模板,其中一类A作为源点,另一类B作为汇点 ...
随机推荐
- [hdu 2586]lca模板题(在线+离线两种版本)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 在线版本: 在线方法的思路很简单,就是倍增.一遍dfs得到每个节点的父亲,以及每个点的深度.然后 ...
- 2017福建省赛 FZU2272~2283
1.FZU2272 Frog 传送门:http://acm.fzu.edu.cn/problem.php?pid=2272 题意:鸡兔同笼通解 题解:解一个方程组直接输出就行 代码如下: #inclu ...
- eclipse关闭错误警告提示
- MAC电脑密码破解
[第一个方法] 开机,启动时按cmd+S,进入Single User Mode,出现像DOS一样的提示符#root> 在#root>下输入(注意空格,大小写) fsck -y moun ...
- POJ 2395 Out of Hay (prim)
题目链接 Description The cows have run out of hay, a horrible event that must be remedied immediately. B ...
- thinkphp 随机获取一条数据
$data=$AD->field("ID,Answer,State")->limit(1)->order('rand()')->select();
- objc_msgSend arm64 崩溃问题
http://blog.csdn.net/chenyong05314/article/details/42121001 2014-12-24 10:49 878人阅读 评论(0) 收藏 举报 转载自: ...
- Selenium2+python自动化40-cookie相关操作【转载】
前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录. 登录后换账号登录时候,也可作为后置条件去删除cookie ...
- 创建ProcessEngine
activiti流程引擎是通过activiti.cfg.xml文件配置的(这并不符合Spring构建流程引擎的编码风格). ProcessEngine processEngine = ProcessE ...
- poj 1556(迪杰斯特拉+计算几何)
The Doors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7641 Accepted: 2987 Descrip ...