还说还剩十分钟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]冠军调查相关推荐

  1. 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割

    [BZOJ2768][JLOI2010]冠军调查 Description 一年一度的欧洲足球冠军联赛已经进入了淘汰赛阶段.随着卫冕冠军巴萨罗那的淘汰,英超劲旅切尔西成为了头号热门.新浪体育最近在吉林教 ...

  2. 洛谷 - P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查(最大流最小割)

    题目链接:点击查看 题目大意:有 n 个人,每个人都有两种意见,且有许多朋友,需要让朋友之间的意见尽可能统一,问最少有多少冲突 题目分析:因为每个人有两种意见,所以分别将其与源点和汇点相连,因为最后可 ...

  3. [bzoj 2768][bzoj 1877]

    传送门1 传送门1 Solution 两道比较裸的题... 复习一下最大流和费用流的模板. Code[bzoj 2768][JLOI 2010] 冠军调查 #include<bits/stdc+ ...

  4. bzoj 3528: [Zjoi2014]星系调查

    Description 银河历59451年,在银河系有许许多多已被人类殖民的星系.如果想要在行 星系间往来,大家一般使用连接两个行星系的跳跃星门.  一个跳跃星门可以把 物质在它所连接的两个行星系中互 ...

  5. 【BZOJ2768】冠军调查,网络流之最小割

    Time:2016.07.19 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 按照赞成与反对组成二分图 分别向s,t连边,流量为1 意见不同的朋友连边,流量为1 跑出的最大流即为答 ...

  6. P2057 [SHOI2007]善意的投票 (最大流最小割)

    P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查 最小割,两种意见可以看作源点S和T,我们需要做的是割最少的边使得S和T成为两个不同的集合,解释:割掉的边相当于1次冲突(因 ...

  7. Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相

    作者 | 唐小引 题图 | HackerEarth 报告 出品 | AI科技大本营(ID:rgznai100) Go 正变得越来越受开发者欢迎. 几年前,滴滴的工程师曾告诉我,在滴滴 Go 已经得到了 ...

  8. MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020

    来源 | 微软研究院AI头条(ID: MSRAsia) 编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高 ...

  9. 深度学习基础总结,无一句废话(附完整思维导图)

    作者 | Python与算法社区 责编 | Carol 封图 | CSDN 付费下载于自视觉中国 线型回归 预测气温.预测销售额.预测商品价格等 模型:权重,偏差 模型训练:feed 数据学习模型参数 ...

最新文章

  1. ASP.NET Core Web APi获取原始请求内容
  2. 【Android 逆向】substrate 框架 ( substrate 简介 | substrate 相关文档资料 )
  3. Python3之打印出map结果的print(list())用法
  4. arcgis已试图对空几何执行该操作_ArcGIS中地理配准与空间校正的不同
  5. Netcdf对数据进行裁剪
  6. 扫雷打开的初始区域递归_Python:游戏:写一个和 XP 上一模一样的“扫雷”!
  7. 当常规的算法都山穷水尽之后,你可以试试python中的SMOTE算法
  8. RocketMQ事务消息从生产到消费原理详解(包括回查过程)
  9. Python-OpenCV中的cv2.threshold
  10. scipy.signal.find_peaks(峰值检测)
  11. Ancient Messages UVA - 1103
  12. 深度学习:注意力模型Attention Model
  13. java反编译class文件,一种最最简单的方法
  14. 未来五年你永远不会忘记的最佳GameCube仿真器
  15. 使用C++对himawari8(9)卫星数据的读取
  16. 网络游戏植入营销的成功案例
  17. 【Pyecharts | Scatter】气泡图实现 / 1990 与 2015 年各国家人均寿命与GDP
  18. redis集群节点宕机
  19. 在线引入 iconfont 特殊图标字体
  20. echarts 3D圆柱形图 实现简单 带图例完美显示隐藏

热门文章

  1. 1-1docker加速器
  2. 展示29个美丽的iPhone壁纸
  3. xcode中工程引用设置
  4. 面向对象之多态性(基类引用可以指向子类)
  5. oracle仲裁磁盘是一块磁盘吗,基于ASM冗余设计的架构,仲裁磁盘组应该如何去规划?...
  6. linux中配置phpcms v9 中的sphinx
  7. spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)
  8. 计算机网络西北大学,西北大学计算机网络复习资料 (拟).doc
  9. element-ui如何进行调试
  10. oracle如何并发重建索引,oracle数据库如何重建索引?