BZOJ-2768: [JLOI2010]冠军调查(超级裸的最小割)
2768: [JLOI2010]冠军调查
Time Limit: 10 Sec Memory Limit: 128 MB
Description
Input
Output
Sample Input
1 0 0
1 2
1 3
2 3
Sample Output
HINT
最好的安排是所有人都在发言时说切尔西不会夺冠。这样没有一对朋友的立场相左,只有第1个人他违心说了话。
最小割不解释。
/**************************************************************Problem: 2768User: winmtLanguage: C++Result: AcceptedTime:32 msMemory:3064 kb
****************************************************************/#include<iostream>
#include<fstream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
#include<queue>
#include<deque>
#include<utility>
#include<map>
#include<set>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<functional>
#include<sstream>
#include<cstring>
#include<bitset>
#include<stack>
using namespace std;int n,m,s,t,cnt=1,x,y,z;
struct sdt
{int cap,flow,u,v;
}e[90305];
int nxt[90305],fir[305],d[305],par[305],num[305],cur[305];
bool vis[305];int read()
{int x=0;char c=getchar();while(c<48||c>57)c=getchar();while(c>47&&c<58)x*=10,x+=c-48,c=getchar();return x;
}void add(int u,int v,int cp,int fl)
{e[++cnt].u=u;e[cnt].v=v;e[cnt].cap=cp;e[cnt].flow=fl;nxt[cnt]=fir[u];fir[u]=cnt;
}void bfs()
{//memset(vis,0,sizeof(vis));//memset(d,0,sizeof(d));queue<int>q;d[t]=0;vis[t]=1;q.push(t);while(!q.empty()){int k=q.front();q.pop();for(int i=fir[k];i;i=nxt[i]){if(!vis[e[i].v] && e[i].cap==0){vis[e[i].v]=1;d[e[i].v]=d[k]+1;q.push(e[i].v);}}}
}int agument()
{int p=t;int ans=2147483647;while(p!=s){ans=min(ans,e[par[p]].cap-e[par[p]].flow);p=e[par[p]].u;}p=t;while(p!=s){e[par[p]].flow+=ans;e[par[p]^1].flow-=ans;p=e[par[p]].u;}return ans;
}int isap()
{//memset(num,0,sizeof(num));int flow=0;for(int i=1;i<=t;i++){num[d[i]]++;cur[i]=fir[i];}int p=s;while(d[s]<t){if(p==t){flow+=agument();p=s;}bool ok=0;for(int i=cur[p];i;i=nxt[i]){if(e[i].cap>e[i].flow && d[p]==d[e[i].v]+1){ ok=1; par[e[i].v]=i; cur[p]=i; p=e[i].v; break; } }if(!ok){int mn=t-1;for(int i=fir[p];i;i=nxt[i]){if(e[i].cap>e[i].flow)mn=min(mn,d[e[i].v]);}if(--num[d[p]]==0)break;num[d[p]=mn+1]++;cur[p]=fir[p];if(p!=s)p=e[par[p]].u;}}return flow;
}int main()
{n=read();m=read();//memset(nxt,0,sizeof(nxt));//memset(fir,0,sizeof(fir));s=1;t=n+2;for(int i=1;i<=n;i++){z=read();if(z){add(s,i+1,1,0);add(i+1,s,0,0);}else{add(i+1,t,1,0);add(t,i+1,1,0);}}for(int i=1;i<=m;i++){x=read();y=read();add(1+x,1+y,1,0);add(y+1,x+1,1,0);}bfs();printf("%d\n",isap());return 0;
}
转载于:https://www.cnblogs.com/winmt/p/6272371.html
BZOJ-2768: [JLOI2010]冠军调查(超级裸的最小割)相关推荐
- BZOJ 2768 [JLOI2010]冠军调查
还说还剩十分钟A一道水题,然后发现和善意的投票一模一样粘个代码过去直接A... 装作自己又写了一道题. 题面 //Twenty #include<cstdio> #include<c ...
- 【BZOJ2768】冠军调查,网络流之最小割
Time:2016.07.19 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 按照赞成与反对组成二分图 分别向s,t连边,流量为1 意见不同的朋友连边,流量为1 跑出的最大流即为答 ...
- 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
[BZOJ2768][JLOI2010]冠军调查 Description 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教 ...
- 洛谷 - P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查(最大流最小割)
题目链接:点击查看 题目大意:有 n 个人,每个人都有两种意见,且有许多朋友,需要让朋友之间的意见尽可能统一,问最少有多少冲突 题目分析:因为每个人有两种意见,所以分别将其与源点和汇点相连,因为最后可 ...
- bzoj 1412 [ZJOI2009]狼和羊的故事 最小割建图
题面 题目传送门 解法 把\(S\)集看作和羊连接,\(T\)看作和狼连接 然后就转化成了基本的最小割模型了 对于0的处理,可以把它放在羊和狼两排点的中间,由\(S\rightarrow\)羊\(\r ...
- bzoj 3232: 圈地游戏【分数规划+最小割】
数组开小导致TTTTTLE-- 是分数规划,设sm为所有格子价值和,二分出mid之后,用最小割来判断,也就是判断sm-dinic()>=0 这个最小割比较像最大权闭合子图,建图是s像所有点连流量 ...
- BZOJ 2039: [2009国家集训队]employ人员雇佣 最小割 二元组建图模型
2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec Memory Limit: 259 MB Submit: 1614 Solved: 789 [Subm ...
- bzoj 1934: [Shoi2007]Vote 善意的投票(最小割)
1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1796 Solved: 1094 [Submit ...
- BZOJ 1324: Exca王者之剑/BZOJ 1475: 方格取数 最大权独立集 最小割
1324: Exca王者之剑 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 618 Solved: 310 [Submit][Status][Di ...
- [bzoj 2768][bzoj 1877]
传送门1 传送门1 Solution 两道比较裸的题... 复习一下最大流和费用流的模板. Code[bzoj 2768][JLOI 2010] 冠军调查 #include<bits/stdc+ ...
最新文章
- APP时代,市场选择是个技术活
- 【SURF+GTM】基于SURF特征提取,GTM去除错误配准点的图像匹配算法的MATLAB仿真
- .net对虚拟目录的操作
- 更新pcb封装导入_PCB设计│网表导入的雷区,你还在踩?
- 可变参数模板(参考《C++ Templates 英文版第二版》)
- MyBatis:模糊查询的4种实现方式
- java代码嵌入html代码是什么_用java给html文件添加必要的控制html代码片
- 三年无bug,提升代码质量的秘诀
- python 笔记 冒泡排序
- ipad文献管理软件_使用ipad看文献,有哪些好用的工具软件?
- python爬股票历史价格_【Python】利用ricequant获取上证指数以及所有股票历史价格数据...
- 前端主流框架Vue工作原理及特性你了解吗?
- php手机页面中文输出乱码,如何解决php输出中文乱码的问题?
- 基于 Layui form 组件的省市区级联的实现 - 组件化
- DAY7(DAY8拓展):Python基础及内置库介绍与使用(含例题)
- laravel学习笔记------使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理
- 微软 Visual Studio 2019 正式发布
- MATLAB多项式计算
- 返还delegation
- 基于C++控制台(Windows平台)的一个植物大战僵尸小游戏
热门文章
- 三列自适应布局(圣杯布局)
- 读取xml中的指定节点的值
- 一个示例让你明白界面与数据分离
- HTML5 网站大观:15个精美的 HTML5 作品集网站实例
- 浙商证券计算机组成原理,中国海洋大学计算机组成原理期末模拟参考答案.doc...
- 使用Intellij Idea生成可执行文件jar,转为exe文件步骤
- vue组件中传值遇到的一些问题
- for input string:是什么原因出现的_「汽车空调异味」周期性出现:原因是什么呢?...
- c++ log函数_第18节 函数的形参和实参-Web前端开发之Javascript-王唯
- springboot mongo查询固定字段_SpringBoot中文参考指南(2.1.6)32、使用 NoSQL 技术