BZOJ1934: [Shoi2007]Vote 善意的投票
BZOJ1934: [Shoi2007]Vote 善意的投票
Description
Input
Output
Sample Input
1 0 0
1 2
1 3
3 2
Sample Output
HINT
在第一个例子中,所有小朋友都投赞成票就能得到最优解
题解Here!
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#define MAXN 310
#define MAXM 200010
#define MAX 999999999
using namespace std;
int n,m,s,t,c=2;
int head[MAXN],deep[MAXN];
struct Edge{int next,to,w;
}a[MAXM];
inline int read(){int date=0,w=1;char c=0;while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}return date*w;
}
inline void add(int u,int v,int w){a[c].to=v;a[c].w=w;a[c].next=head[u];head[u]=c++;a[c].to=u;a[c].w=0;a[c].next=head[v];head[v]=c++;
}
bool bfs(){int u,v;queue<int> q;for(int i=1;i<=t;i++)deep[i]=0;deep[s]=1;q.push(s);while(!q.empty()){u=q.front();q.pop();for(int i=head[u];i;i=a[i].next){v=a[i].to;if(a[i].w&&!deep[v]){deep[v]=deep[u]+1;if(v==t)return true;q.push(v);}}}return false;
}
int dfs(int x,int limit){if(x==t)return limit;int v,sum,cost=0;for(int i=head[x];i;i=a[i].next){v=a[i].to;if(a[i].w&&deep[v]==deep[x]+1){sum=dfs(v,min(a[i].w,limit-cost));if(sum>0){a[i].w-=sum;a[i^1].w+=sum;cost+=sum;if(cost==limit)break;}else deep[v]=-1;}}return cost;
}
int dinic(){int ans=0;while(bfs())ans+=dfs(s,MAX);return ans;
}
void init(){int x,y;n=read();m=read();s=n+1;t=n+2;for(int i=1;i<=n;i++){x=read();if(x)add(s,i,1);else add(i,t,1);}for(int i=1;i<=m;i++){x=read();y=read();add(x,y,1);add(y,x,1);}
}
int main(){init();printf("%d\n",dinic());return 0;
}
转载于:https://www.cnblogs.com/Yangrui-Blog/p/10465922.html
BZOJ1934: [Shoi2007]Vote 善意的投票相关推荐
- [bzoj1934][Shoi2007]Vote 善意的投票
来自FallDream的博客,未经允许,请勿转载,谢谢. 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为 ...
- bzoj1934: [Shoi2007]Vote 善意的投票(最小割)
传送门 考虑源点为同意,汇点为反对,那么只要源点向同意的连边,不同意的向汇点连边,求个最小割就是答案 然后考虑朋友之间怎么办,我们令朋友之间连双向边.这样不管怎么割都能对应一种选择情况.那么还是求一个 ...
- bzoj1934 [Shoi2007]Vote 善意的投票 最小割
一上来容易想到缩点dp,但由于一个集合是没法用状态表示的,所以不能dp 然后就可以想到最小割,即通过割边和代价完成分配: 就比较好做了,默认选0就和0连边,默认选1就和1连边,朋友之间连边,如果在同一 ...
- [BZOJ1934][Shoi2007]Vote 善意的投票[最小割]
建图方式: S->同意 ,反对->T 对于每一对好友连容量为1的边 #include <bits/stdc++.h> using namespace std; const in ...
- 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
[BZOJ2768][JLOI2010]冠军调查 Description 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教 ...
- 【BZOJ 1934】 [Shoi2007]Vote 善意的投票
1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1205 Solved: 746 [Submit] ...
- bzoj 1934: [Shoi2007]Vote 善意的投票(最小割)
1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1796 Solved: 1094 [Submit ...
- 1934: [Shoi2007]Vote 善意的投票
Description 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可 ...
- ●BZOJ 1934 [Shoi2007]Vote 善意的投票
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1934 题解: 题目有点迷. S向为1的点连边,为0的点向T连边, 在有关系的两个点之间连双向 ...
- BZOJ 1934: [Shoi2007]Vote 善意的投票
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1934 求图的最小割=求一下图的最大流. #include <iostream> ...
最新文章
- CentOS 7 SSH 免密登录的方法
- 06开始完整制作网站
- python使用matplotlib可视化间断条形图、使用broken_barh函数可视化间断条形图、可视化定性数据的相同指标在时间维度上的差异
- 易语言tcp多线程服务端客户端_从TCP协议到TCP通信的各种异常现象和分析
- Nginx Kafka数据生产接口
- 利用RTMP或RTSP实现跨平台一对一互动功能
- 单处理机系统的进程调度实验_Chcore -- 上交IPADS操作系统银杏书配套Lab实验笔记 - Lab3进程与异常(一)...
- TensorFlow 教程 --进阶指南--3.1总览
- oracle建表时添加comment,MYSQL中创建表时可以直接声明comment,ORACLE中似乎不可以,那么oracle该怎样简明地声明comment...
- 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)
- SPSS 产生正交数据集
- 使用C++调用Socket接口实现简易TCP服务器
- dns提供商主机名_什么是FQDN?它和主机名有区别吗?
- ios和Android样式不兼容(待更新)
- ThinkPad E420升级之路
- 关于前端后台管理系统总结
- OB2263MP小知识
- 拼多多看似简单,为什么很多的新手商家却亏钱了呢?
- 第四次作业-微软必应词典客户端
- php laravel入口文件,Laravel学习教程之从入口到输出过程详解
热门文章
- ASP.NET HttpHandler加水印
- 深入了解JavaScript目录(持续更新)
- tensorflow自定义op_TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式
- java exec 关闭,Java学习之使用Runtime.exec()启动、关闭Tomcat
- 广东财经大学计算机专业学费,广东财经大学各专业一年至少需要交的学费
- java 表格添加监听_关于Oracle用java实时监听oracle对表的DML操作【技术贴】
- html 怎么设置时间函数,JavaScript日期函数 - 计时器、innerHTML
- 创建oracle管理用户名和密码是什么情况,Oracle创建时默认创建的用户以及密码
- coreldraw梯形校正_CorelDRAW改变用形状识别所绘制对象的轮廓
- 【渝粤教育】国家开放大学2018年春季 0133-21T大学物理 参考试题