poj 3660 Cow Contest ----floyd 传递闭包
2012-03-15 20:29
429 查看
/* 和poj1975(求其可能为中间那个不)有点像,此题也是先floyd, 然后求比他小的和比他大的数量是否为n-1,是则他的位置可以确定 保证(guaranteed)所给数据不冲突 */ #include<stdio.h> #include<string.h> int g[101][101];//g[i][j]表示j比i若 void floyd(int n) { int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) g[i][j]=(g[i][j]||(g[i][k]&&g[k][j]));//若j已经比i若,或有个k可以实现j比k若,k比i若,可得j比i若 } int main() { int a,b,t,n,m,i,j; memset(g,0,sizeof(g)); scanf("%d%d",&n,&m); for(i=0;i<m;i++) { scanf("%d%d",&a,&b); g[a][b]=1; } floyd(n); int ans=0; for(i=1;i<=n;i++) { int da=0,xiao=0; for(j=1;j<=n;j++) if(g[i][j]) xiao++; else if(g[j][i]) da++; if((da+xiao)==(n-1)) ans++; } printf("%d\n",ans); return 0; }
相关文章推荐
- (POJ 3660)Cow Contest [详解] [floyd] 传递闭包 确定top序列顺序
- Floyd传递闭包-POJ-3660-Cow Contest
- POJ 3660 Cow Contest-floyd传递闭包
- POJ 3660 Cow Contest 传递闭包
- POJ 3660 Floyd传递闭包
- POJ 3660 Floyd求传递闭包
- poj 3660 Cow Contest floyd 传递闭包!!基础
- POJ 3660 Cow contests Floyd 传递闭包
- POJ-3660 Cow Contest 传递闭包
- POJ 3660 Cow Contest (闭包传递)
- POJ-3660 Cow Contest Floyd传递闭包的应用
- poj 3660 floyd 传递闭包
- POJ-3660(Cow Contest)——传递闭包
- POJ 3660 - Cow Contest(传递闭包+Floyd)
- Poj 3660 Cow Contest(Floyd解决传递闭包)
- POJ - 3660 Cow Contest (floyd变形)
- POJ3660 Cow Contest(floyd)
- POJ 3660 Cow Contest (Floyd 传递闭包判连通)
- POJ 3660 Cow Contest (Floyd 传递闭包)
- POJ 3660 图传递闭包