●BZOJ 1934 [Shoi2007]Vote 善意的投票
题链:
http://www.lydsy.com/JudgeOnline/problem.php?id=1934
题解:
题目有点迷。
S向为1的点连边,为0的点向T连边,
在有关系的两个点之间连双向边。
以上边的容量都为1。
然后求最小割,最小割==最大流,dinic实现。
代码:
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#define MAXN 350
#define INF 0x3f3f3f3f
using namespace std;
struct Edge{
int to[MAXN*MAXN*2],cap[MAXN*MAXN*2],nxt[MAXN*MAXN*2],head[MAXN],ent;
void Init(){
ent=2; memset(head,0,sizeof(head));
}
void Adde(int u,int v,int w){
to[ent]=v; cap[ent]=w;
nxt[ent]=head[u]; head[u]=ent++;
to[ent]=u; cap[ent]=0;
nxt[ent]=head[v]; head[v]=ent++;
}
int Next(bool type,int i){
return type?head[i]:nxt[i];
}
}E;
int N,M,T,S;
int d[MAXN],cur[MAXN];
bool bfs(){
memset(d,0,sizeof(d));
queue<int>q; q.push(S); d[S]=1;
while(!q.empty()){
int u=q.front(); q.pop();
for(int i=E.Next(1,u);i;i=E.Next(0,i)){
int v=E.to[i];
if(d[v]||!E.cap[i]) continue;
d[v]=d[u]+1; q.push(v);
}
}
return d[T];
}
int dfs(int u,int reflow){
if(!reflow||u==T) return reflow;
int flowout=0,f;
for(int &i=cur[u];i;i=E.Next(0,i)){
int v=E.to[i];
if(d[v]!=d[u]+1) continue;
f=dfs(v,min(reflow,E.cap[i]));
reflow-=f; E.cap[i]-=f;
flowout+=f; E.cap[i^1]+=f;
if(!reflow) break;
}
if(!flowout) d[u]=0;
return flowout;
}
int Dinic(){
int flow=0;
while(bfs()){
memcpy(cur,E.head,sizeof(E.head));
flow+=dfs(S,INF);
}
return flow;
}
int main()
{
scanf("%d%d",&N,&M); S=N+1,T=N+2;
E.Init();
for(int i=1,x;i<=N;i++){
scanf("%d",&x);
if(x==1) E.Adde(S,i,1);
else E.Adde(i,T,1);
}
for(int i=1,a,b;i<=M;i++){
scanf("%d%d",&a,&b);
E.Adde(a,b,1);
E.Adde(b,a,1);
}
int ans=Dinic();
printf("%d",ans);
return 0;
}
●BZOJ 1934 [Shoi2007]Vote 善意的投票的更多相关文章
- BZOJ 1934: [Shoi2007]Vote 善意的投票 最小割
1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnl ...
- 最小投票BZOJ 1934([Shoi2007]Vote 善意的投票-最小割)
上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下最小投票 1934: [Shoi2007]Vote 好心的投票 Time Limit: 1 Sec Memory L ...
- BZOJ 1934 [Shoi2007]Vote 善意的投票(最小割)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1934 [题目大意] 每个人对于投票都有自己原来的观点:1或者0, 他可以违背自己原来的 ...
- 【刷题】BZOJ 1934 [Shoi2007]Vote 善意的投票
Description 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可 ...
- bzoj 1934: [Shoi2007]Vote 善意的投票
#include<cstdio> #include<iostream> #define M 100000 #include<cstring> using names ...
- bzoj 1934: [Shoi2007]Vote 善意的投票 (最小割)
原来是赞同的连源,原来是反对的连汇,然后是朋友的就连在一起,这样最小割就是割掉违背和谐的吧 type arr=record toward,next,cap:longint; end; const ma ...
- 1934: [Shoi2007]Vote 善意的投票
1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1174 Solved: 723[Submit][S ...
- 【BZOJ】1934: [Shoi2007]Vote 善意的投票(网络流/-二分图匹配)
http://www.lydsy.com/JudgeOnline/problem.php?id=1934 一开始我想到了这是求最小割,但是我认为这题二分图可做,将1的放在左边,0的放在右边,然后朋友连 ...
- 1934: [Shoi2007]Vote 善意的投票 - BZOJ
Description幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以 ...
随机推荐
- 代码中输入数字自动筛选出最大值,使用array,for loop and if (21.9.2017)
# include <stdio.h> # define N main(){ int a, b; ,,,,,,,,,,,,,,,,}; //array中输入需要排序的数字 ]; ; a & ...
- Scrum 冲刺 第四日
目录 要求 项目链接 燃尽图 问题 今日任务 明日计划 成员贡献量 小组会议 要求 各个成员今日完成的任务(如果完成的任务为开发或测试任务,需给出对应的Github代码签入记录截图:如果完成的任务为调 ...
- 【iOS】字号问题
一,ps和pt转换 px:相对长度单位.像素(Pixel).(PS字体) pt:绝对长度单位.点(Point).(iOS字体) 公式如下: pt=(px/96)*72. 二,字体间转换 1in = 2 ...
- easyUI combobox 添加空白项
今天测试反馈了一个问题,希望可以在下拉框下面加一个空白的选项(下拉框用的是combobox方法). 开始分析这个问题: 首先,这个数据都是后台读出来的,那么我在后台直接添加可以么,答案是可以的,如果没 ...
- Something about SeekingJob---Resume简历
这几天脑子里满满的装的都是offer.offer.offer快到碗里来,但是offer始终不是巧克力,并没那么甜美可口易消化. 找工作刚开始,就遇到了不小的阻力,看到Boss直聘上各种与IT相关的工作 ...
- style scoped
scoped: 只在父div和其内容内生效,
- 爬虫模块BeautifulSoup
中文文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html# 1.1 安装BeautifulSoup模块 ...
- c# BinaryWriter 和 BinaryReader
string path = @"C:\Users\Administrator\Desktop\1.txt"; using (FileStream ws = new FileStre ...
- 非PE病毒介绍
1.宏病毒 1.1 介绍 本文中的宏特制office系列办公软件中的宏,Microsoft Office中对宏的定义为"宏就是能够组织在一起的,可以作为一个独立命令来执行的一系列Word 命 ...
- SpringCloud的服务注册中心(二)注册中心服务端和两个微服务应用客户端
一.构建EurekaServer工程 1.pom.xml 2.application.yml 3. EurekaServerApp.java 4.启动EurekaServer 二.构建部署 Eurek ...