BZOJ 2768 [JLOI2010]冠军调查
还说还剩十分钟A一道水题,然后发现和善意的投票一模一样粘个代码过去直接A。。。
装作自己又写了一道题。
题面
//Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<queue> #include<vector> const int maxn=20050,maxm=200050,INF=0x7f7f7f7f; using namespace std; int n,m,s,t,u,v,w,ecnt=1,fir[maxn],d[maxn],cur[maxn],c[maxn],p[maxn]; struct edge {int from,to,cap,flow,nxt;edge(){}edge(int from,int to,int cap,int flow,int nxt):from(from),to(to),cap(cap),flow(flow),nxt(nxt){} }e[maxm]; void add(int u,int v,int w) {e[++ecnt]=edge(u,v,w,0,fir[u]); e[++ecnt]=edge(v,u,0,0,fir[v]); fir[u]=ecnt-1; fir[v]=ecnt; } queue<int>que; void bfs(int s,int t) {for(int i=1;i<=n;i++) d[i]=n;d[t]=0; que.push(t);while(!que.empty()) {int x=que.front() ;que.pop();for(int i=fir[x];i;i=e[i].nxt) if(d[e[i].to]==n&&e[i].flow==e[i].cap) {d[e[i].to]=d[x]+1;que.push(e[i].to); }} } int cal(int s,int t) {int fl=INF;for(int x=t;x!=s;x=e[p[x]].from) fl=min(fl,e[p[x]].cap-e[p[x]].flow);for(int x=t;x!=s;x=e[p[x]].from) {e[p[x]].flow+=fl;e[p[x]^1].flow-=fl;}return fl; } int maxflow(int s,int t) {bfs(s,t);int res=0;for(int i=1;i<=n;i++) cur[i]=fir[i],c[d[i]]++;for(int x=s;d[x]<n;) {if(x==t) {res+=cal(s,t);x=s;}int ok=0;for(int &i=cur[x];i;i=e[i].nxt) if(d[e[i].to]+1==d[x]&&e[i].cap>e[i].flow){p[x=e[i].to]=i;ok=1; break;}if(!ok) {cur[x]=fir[x]; int M=n;for(int i=cur[x];i;i=e[i].nxt) if(e[i].cap>e[i].flow)M=min(M,d[e[i].to]+1);if(!(--c[d[x]])) break;c[d[x]=M]++;if(x!=s) x=e[p[x]].from;}}return res; } int main() {scanf("%d%d",&n,&m);s=n+1; t=n+2;for(int i=1;i<=n;i++) {int x;scanf("%d",&x);if(x==1) add(s,i,1),add(i,t,0);else add(s,i,0),add(i,t,1);}n+=2;for(int i=1;i<=m;i++) {int x,y;scanf("%d%d",&x,&y);add(x,y,1);add(y,x,1);}printf("%d\n",maxflow(s,t));return 0; }
View Code
转载于:https://www.cnblogs.com/Achenchen/p/7608820.html
BZOJ 2768 [JLOI2010]冠军调查相关推荐
- 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
[BZOJ2768][JLOI2010]冠军调查 Description 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教 ...
- 洛谷 - P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查(最大流最小割)
题目链接:点击查看 题目大意:有 n 个人,每个人都有两种意见,且有许多朋友,需要让朋友之间的意见尽可能统一,问最少有多少冲突 题目分析:因为每个人有两种意见,所以分别将其与源点和汇点相连,因为最后可 ...
- [bzoj 2768][bzoj 1877]
传送门1 传送门1 Solution 两道比较裸的题... 复习一下最大流和费用流的模板. Code[bzoj 2768][JLOI 2010] 冠军调查 #include<bits/stdc+ ...
- bzoj 3528: [Zjoi2014]星系调查
Description 银河历59451年,在银河系有许许多多已被人类殖民的星系.如果想要在行 星系间往来,大家一般使用连接两个行星系的跳跃星门. 一个跳跃星门可以把 物质在它所连接的两个行星系中互 ...
- 【BZOJ2768】冠军调查,网络流之最小割
Time:2016.07.19 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 按照赞成与反对组成二分图 分别向s,t连边,流量为1 意见不同的朋友连边,流量为1 跑出的最大流即为答 ...
- P2057 [SHOI2007]善意的投票 (最大流最小割)
P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查 最小割,两种意见可以看作源点S和T,我们需要做的是割最少的边使得S和T成为两个不同的集合,解释:割掉的边相当于1次冲突(因 ...
- Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相
作者 | 唐小引 题图 | HackerEarth 报告 出品 | AI科技大本营(ID:rgznai100) Go 正变得越来越受开发者欢迎. 几年前,滴滴的工程师曾告诉我,在滴滴 Go 已经得到了 ...
- MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
来源 | 微软研究院AI头条(ID: MSRAsia) 编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高 ...
- 深度学习基础总结,无一句废话(附完整思维导图)
作者 | Python与算法社区 责编 | Carol 封图 | CSDN 付费下载于自视觉中国 线型回归 预测气温.预测销售额.预测商品价格等 模型:权重,偏差 模型训练:feed 数据学习模型参数 ...
最新文章
- ASP.NET Core Web APi获取原始请求内容
- 【Android 逆向】substrate 框架 ( substrate 简介 | substrate 相关文档资料 )
- Python3之打印出map结果的print(list())用法
- arcgis已试图对空几何执行该操作_ArcGIS中地理配准与空间校正的不同
- Netcdf对数据进行裁剪
- 扫雷打开的初始区域递归_Python:游戏:写一个和 XP 上一模一样的“扫雷”!
- 当常规的算法都山穷水尽之后,你可以试试python中的SMOTE算法
- RocketMQ事务消息从生产到消费原理详解(包括回查过程)
- Python-OpenCV中的cv2.threshold
- scipy.signal.find_peaks(峰值检测)
- Ancient Messages UVA - 1103
- 深度学习:注意力模型Attention Model
- java反编译class文件,一种最最简单的方法
- 未来五年你永远不会忘记的最佳GameCube仿真器
- 使用C++对himawari8(9)卫星数据的读取
- 网络游戏植入营销的成功案例
- 【Pyecharts | Scatter】气泡图实现 / 1990 与 2015 年各国家人均寿命与GDP
- redis集群节点宕机
- 在线引入 iconfont 特殊图标字体
- echarts 3D圆柱形图 实现简单 带图例完美显示隐藏
热门文章
- 1-1docker加速器
- 展示29个美丽的iPhone壁纸
- xcode中工程引用设置
- 面向对象之多态性(基类引用可以指向子类)
- oracle仲裁磁盘是一块磁盘吗,基于ASM冗余设计的架构,仲裁磁盘组应该如何去规划?...
- linux中配置phpcms v9 中的sphinx
- spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)
- 计算机网络西北大学,西北大学计算机网络复习资料 (拟).doc
- element-ui如何进行调试
- oracle如何并发重建索引,oracle数据库如何重建索引?