解题思路

考虑如何建模。

既然是网络流,那么肯定要有源点和汇点。而这个题目并没有什么明显的源点和汇点。

想一想,如果一个飞机能够起飞的话,那么必定有一对可以配对的正副驾驶员。也就是说一条曾广路能够上必定有且只有一对配对的管理员。

这里引入一个超级源点和超级汇点。超级源点就和正驾驶相连,流量为$1$。副驾驶员和汇点相连。模型就建好了。

之后就是跑$Dinic$,网络流模板不难,难的是建模QAQ

附上代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
const int maxnode = , maxedge = , INF = ;
int n, m, s, t, head[maxnode], cnt = , Depth[maxnode], Ans;
struct Edge {
int nxt, v, w;
}ed[maxedge];
inline void addedge(int u, int v, int w) {
ed[++cnt].nxt = head[u];
ed[cnt].v = v, ed[cnt].w = w;
head[u] = cnt;
}
inline bool BFS() {
queue <int> Q;
memset(Depth, , sizeof(Depth));
Depth[s] = , Q.push(s);
int u;
while (!Q.empty()) {
u = Q.front();
Q.pop();
for(int i=head[u]; i; i=ed[i].nxt) {
if(Depth[ed[i].v] == && ed[i].w > ) {
Depth[ed[i].v] = Depth[u] + ;
Q.push(ed[i].v);
if(ed[i].v == t) return true;
}
}
}
return false;
}
inline int Dinic(int u, int cap) {
if(u == t) return cap;
int delta;
for(int i=head[u]; i; i=ed[i].nxt) {
if(ed[i].w > && Depth[ed[i].v] == Depth[u] + ) {
delta = Dinic(ed[i].v, min(cap, ed[i].w));
if(delta > ) {
ed[i].w -= delta;
ed[i^].w += delta;
return delta;
}
}
}
return ;
}
int main() {
scanf("%d%d", &n, &m);
s = , t = n+;
for(int i=; i<=m; i++) addedge(s, i, ), addedge(i, s, );
for(int i=m+; i<=n; i++) addedge(i, t, ), addedge(t, i, );
static int x, y;
while (scanf("%d%d", &x, &y) == ) addedge(x, y, ), addedge(y, x, );
while (BFS()) Ans += Dinic(s, INF);
printf("%d", Ans);
}

最新文章

  1. IE6/IE7/IE8兼容H5标签
  2. cocos2d-x之xml文件读取初试
  3. 在后台直接调用sql
  4. C# is与as
  5. Python_爬虫3
  6. javascript eval 执行过程
  7. oracle热点表online rename
  8. [BZOJ 1034] [ZJOI2008] 泡泡堂BNB 【贪心】
  9. Unity3D AssentStore 下载的package存放目录(WinXP,Win8,Mac OS X)
  10. Hibernate学习之注解学习
  11. xen虚拟机安装实践
  12. error: png.h not found.
  13. /etc/postfix下 main.cf 配置文件详解
  14. 将Django部署到Linux
  15. javascript中apply()和call()方法及区别
  16. 接口测试工具-Jmeter使用笔记(三:管理请求服务器信息和Headers参数)
  17. [转载]AngularJS学习笔记
  18. Datagrid分页、排序、删除代码
  19. Hadoop 和 Spark 的关系
  20. 使用php在服务器端生成图文验证码(二)

热门文章

  1. UVA 213 Message Decoding 【模拟】
  2. searchView 颜色 icon 设置
  3. 如何在BCGControlBar工程的工具栏里面新增下拉列表控件
  4. JS判断字符串中是否存在某个字符
  5. map的遍历方式(使用Junit测试)
  6. 牛客OI周赛2-提高组
  7. 使用wkwebview后,页面返回不刷新的问题
  8. Vue组件之间通信的三种方式
  9. 这样的设计是否有违背MVC设计原则??
  10. JavaScript(十四)经典的Ajax