博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3660 Cow Contest
阅读量:5101 次
发布时间:2019-06-13

本文共 1113 字,大约阅读时间需要 3 分钟。

对每个结点 BFS 一遍,找出能被它打败和可以打败它的结点的总和 s ,如果 s == n-1 ,它的排名可以确定;

C++ vector 邻接表;

# include 
# include
# include
# include
# define N 105using namespace std;int n, m;char vis[N];vector
pre[N];vector
aft[N];int bfs(int u, int d){ int i, ret, cx, nx, front, rear, size; int Q[1000*N]; Q[1] = u; memset(vis, 0, sizeof(vis)); vis[u] = 1; front = 1; rear = 2; ret = 0; while (front < rear) { cx = Q[front++]; size = d>0 ? aft[cx].size():pre[cx].size(); for (i = 0; i < size; ++i) { nx = d>0 ? aft[cx][i]:pre[cx][i]; if (!vis[nx]) { Q[rear++] = nx; vis[nx] = 1; ++ret; } } } return ret;}int main(){ int i, cnt, u, v; while (~scanf("%d%d", &n, &m)) { for (i = 1; i <= n; ++i) { pre[i].clear(); aft[i].clear(); } for (i = 0; i < m; ++i) { scanf("%d%d", &u, &v); pre[v].push_back(u); aft[u].push_back(v); } cnt = 0; for (i = 1; i <= n; ++i) { if (bfs(i, 1)+bfs(i, -1) == n-1) ++cnt; } printf("%d\n", cnt); } return 0;}

//

转载于:https://www.cnblogs.com/JMDWQ/archive/2012/07/09/2582113.html

你可能感兴趣的文章
z-index解决弹出层遮罩层覆盖子div不能显示输出的问题
查看>>
信息安全系统设计基础第十周学习总结
查看>>
记得初学JS时候练个九九乘法表都写的要死要活
查看>>
算法第四章实验报告
查看>>
Hdu 2069 Coin Change
查看>>
Python网络编程(socket模块、缓冲区、http协议)
查看>>
开博留念
查看>>
四重解法---P1047 校门外的树
查看>>
大马猴队-Alpha阶段项目复审
查看>>
集群时间同步
查看>>
Ubuntu16.04 + Win 10 双系统 时间同步,启动项顺序,NumLock指示灯常亮
查看>>
win10桌面显示我的电脑设置
查看>>
VxWorks各部分初始化流程 分类: vxWorks ...
查看>>
给你90天,成为不一样的自己!
查看>>
python版本下载时时,官方目录web-based与executable和embeddable 的区别
查看>>
Java程序单元测试工具对比——Parasoft Jtest与Junit
查看>>
js/jquery中什么时候用return,什么时候用return false
查看>>
Android开发 MVP模式的规范记录(个人总结)
查看>>
hadoop2.2使用手册2:如何运行自带wordcount
查看>>
ByteArrary(优化数据存储和数据流)
查看>>