bzoj1934 bzoj2768
最小割的经典模型,体现出最小割的基本定义,把两个集合划分的最小代价
把一开始同意的人连源点,不同意的连汇点,有关系的人之间连边,流量都为1
不难发现,割两点(人)间的边就相当于朋友之间发生冲突
割到连源汇点的边就相当于与原来意愿不同
所以解决问题的方案等于图中的一个割
则最少冲突数=最小割=最大流
type node=record
point,flow,next:longint;
end;
var edge:array[..] of node;
cur,p,pre,numh,h:array[..] of longint;
ans,len,i,j,x,y,n,m:longint; procedure add(x,y,f:longint);
begin
inc(len);
edge[len].point:=y;
edge[len].flow:=f;
edge[len].next:=p[x];
p[x]:=len;
end; procedure sap;
var tmp,u,i,j,neck,f,q:longint;
begin
u:=;
numh[]:=n+;
fillchar(pre,sizeof(pre),);
fillchar(cur,sizeof(cur),);
while h[]<n+ do
begin
if u=n then
begin
i:=;
while i<>n do
begin
j:=cur[i];
dec(edge[j].flow);
inc(edge[j xor ].flow);
i:=edge[j].point;
end;
inc(ans);
u:=;
end;
q:=-;
i:=p[u];
while i<>- do
begin
j:=edge[i].point;
if (edge[i].flow>) and (h[u]=h[j]+) then
begin
q:=i;
break;
end;
i:=edge[i].next;
end;
if q<>- then
begin
cur[u]:=q;
pre[j]:=u;
u:=j;
end
else begin
dec(numh[h[u]]);
if numh[h[u]]= then break;
i:=p[u];
tmp:=n+;
while i<>- do
begin
j:=edge[i].point;
if (edge[i].flow>) then tmp:=min(tmp,h[j]);
i:=edge[i].next;
end;
h[u]:=tmp+;
inc(numh[h[u]]);
if u<> then u:=pre[u];
end;
end;
end; begin
readln(n,m);
len:=-;
fillchar(p,sizeof(p),);
for i:= to n do
begin
read(x);
if x= then
begin
add(,i,);
add(i,,);
end
else begin
add(i,n+,);
add(n+,i,);
end;
end;
for i:= to m do
begin
readln(x,y);
add(x,y,);
add(y,x,);
add(y,x,);
add(x,y,);
end;
inc(n);
sap;
writeln(ans);
end.
bzoj1934 bzoj2768的更多相关文章
- 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
		
[BZOJ2768][JLOI2010]冠军调查 Description 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教 ...
 - 【bzoj2768/bzoj1934】[JLOI2010]冠军调查/[Shoi2007]Vote 善意的投票  最小割
		
bzoj2768 题目描述 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教育学院进行了一次大规模的调查,调查的内容就是关 ...
 - BZOJ1934:[SHOI2007]善意的投票 & BZOJ2768:[JLOI2010]冠军调查——题解
		
https://www.lydsy.com/JudgeOnline/problem.php?id=1934 https://www.lydsy.com/JudgeOnline/problem.php? ...
 - bzoj1934: [Shoi2007]Vote 善意的投票&&bzoj2768:[JLOI2010]冠军调查
		
get到新姿势,最小割=最大流,来个大佬的PPT 这道题的做法是将st和1的xpy连,0的xpy和ed连,xpy之间jy连双向边,然后呢答案就是最小割. #include<cstdio> ...
 - 【BZOJ1934】善意的投票(网络流)
		
[BZOJ1934]善意的投票(网络流) 题面 Description 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己 ...
 - BZOJ2768 JLOI2012冠军调查(最小割)
		
容易想到网络流.将每个人拆成0和1两个点.若某人值为0的话则让源连向0,否则让1连向汇,流量为1.相互认识的人之间01各自连边.跑最小割即可. #include<iostream> #in ...
 - [bzoj1934/2768][Shoi2007]Vote 善意的投票_最小割
		
Vote 善意的投票 bzoj-1934 Shoi-2007 题目大意:题目链接. 注释:略. 想法: 这是最小割的一个比较基本的模型. 我们将所有当前同意的小朋友连向源点,边权为1.不容易的连向汇点 ...
 - [BZOJ2768][JLOI2010]冠军调查(最小割)
		
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2768 分析: 如果一个点i认为是0,则连一条S->i,如果认为是1,则i-> ...
 - 【BZOJ-2768】冠军调查      最小割
		
2768: [JLOI2010]冠军调查 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 971 Solved: 661[Submit][Status ...
 
随机推荐
- V9任何页面GET调用内容分页的说明
			
如标题,很多人想要在网站首页或其他的页面实现分页效果,说明如下: 一般特殊页面实现分页是通过GET语句的(论坛很多牛人用修改PHPCMS系统函数来实现,个人不推荐,因为你改了系统文件,不利于官方下一步 ...
 - 《WPF程序设计指南》读书笔记——第9章 路由输入事件
			
1.使用路由事件 路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件.通俗地说,路由事件会在可视树(逻辑树是其子集)上,上下routed,如果哪个节点上订阅了 ...
 - Palindromic Number (还是大数)
			
A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...
 - mac 下 sphinx + mysql + php 实现全文搜索(xampp)(4)php api 解析
			
1:function GetLastError() // 假如报错的话,会输出报错信息 2:function GetLastWarning ()// 输出 警告信息 3:function SetSe ...
 - MyEclipse新建Maven工程
			
1.File-->New-->Web Project 2.新建文件夹 需要新建4个源文件夹,分别是 src/main/java src/main/resources src/te ...
 - 二十、mysql mysqldump备份工具
			
.备份所有数据库 mysqldump -uroot -p --all-database > c:\all.sql 备份所有数据库到c盘下的all,sql文件 .备份某个数据库 mysqldump ...
 - mysql常用数据类型的选择
			
时间戳可以用int来存储 ip地址的存储数据类型,可以使用INET_ATON 和INET_NTOA来配合bigint类型来代替varchar
 - Head First设计模式悟道
			
暂时包括 策略模式,观察者,装饰模式,工厂模式,抽象工厂模式,后续会继续补充中,纯属个人总结用,不喜勿喷, 源代码见: 传送门 public class NYPizzaIngredientFactor ...
 - java 构造函数
			
1.public className(){}. 2.名称与类名相同,无返回值,无返回类型,void也不行.(就是上边的形式,除了可以有参数). 3.有0个或多个参数. 4.每个类都至少有一个const ...
 - 在scrollView中使用pageControl
			
在scrollView中使用pageControl 要这样才能效果好,合理而且人性化 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{ if ...