hdu 1704 Rank
来源:互联网 发布:重庆手机数据恢复 编辑:程序博客网 时间:2024/04/28 10:07
题目链接:点击打开链接
题意:对于n个选手给出m场比赛的结果,结果有传递性,问有多少对选手不能判断他们之间的胜负关系
用a[i][j]表示i是否胜过j
把所有结果输入后用一个三重循环更新每两个选手间是否有胜负关系。全部更新完后枚举记录结果,再把结果除2即可。
三重循环中和最短路的floyd一样,要把中间点放在最外层循环,否则会wa。
代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;bool a[505][505];int main(){ int T; cin>>T; while(T--){ memset(a,0,sizeof(a)); int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ int s,t; scanf("%d%d",&s,&t); a[s][t]=1; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[j][i]){ for(int k=1;k<=n;k++){ if(a[i][k]) a[j][k]=1; } } } } int res=0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j)continue; if(!a[i][j]&&!a[j][i]){ res++; } } } res/=2; printf("%d\n",res); } return 0;}
0 0
- hdu 1704 Rank
- hdu-1704 Rank
- HDU 1704 Rank(求闭包)
- Rank HDU
- Rank HDU
- hdu 1704 Rank (传递闭包)
- HDU 1704 rank(floyd闭包+剪枝)
- hdu 1704 rank 传递闭包
- HDU 1704 Rank (floyd传递闭包)
- hdu-1704-Rank(floyd-传递闭包)
- hdu 1718 Rank
- hdu 1718 Rank
- HDU 1718--Rank
- hdu 1718 Rank
- hdu-oj 1718 Rank
- HDU 1718 Rank
- HDU 1.3.6 Rank
- hdu 1503 Rank
- delphi的ORD
- Swift 柯里化(Currying)
- linux环境下 C++性能测试工具 gprof 和gprof2dot
- gdsgdsgdsg
- Mtk Android 打包解包*.img
- hdu 1704 Rank
- Qt my note
- 习近平曾下乡7年 住窑洞睡土炕挑粪建沼气
- 用IO检测方式判断交流220V与110V(松瀚汇编程序)
- linux统计莫端口流量
- FPGA开发之高手之路
- UIView用户交互相关的属性和方法
- 转载 -- 单点登录SSO的实现原理
- 东软学习,jQuery的选择器实例