Solution:

传递闭包

//if a beats b and b beats c , then a beats c

//to cow i, if all the result of content(n-1) has been known,
    //then the rank can be determined

 #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define maxn 1000 //if a beats b and b beats c , then a beats c int main()
{
long n,m,i,j,k,a,b,ans,total=;
bool vis[maxn][maxn];
scanf("%ld%ld",&n,&m);
for (i=;i<=n;i++)
for (j=;j<=n;j++)
vis[i][j]=false;
for (i=;i<=m;i++)
{
scanf("%ld%ld",&a,&b);
vis[a][b]=true;
}
for (i=;i<=n;i++)
for (j=;j<=n;j++)
for (k=;k<=n;k++)
vis[j][k]=vis[j][k] || (vis[j][i] && vis[i][k]);
//to cow i, if all the result of content(n-1) has been known,
//then the rank can be determined
for (i=;i<=n;i++)
{
ans=;
for (j=;j<=n;j++)
if (vis[i][j] || vis[j][i])
ans++;
if (ans==n-)
total++;
}
printf("%ld\n",total);
return ;
}

传递闭包标程+解释:

 #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define maxn 1000 //n个点,点编号为1~n,m条边
//传递闭包:判断图中任意两点是否可达
//时间复杂度:n*n*n int main()
{
long n,m,i,j,k,a,b;
bool vis[maxn][maxn];
scanf("%ld%ld",&n,&m);
for (i=;i<=n;i++)
for (j=;j<=n;j++)
vis[i][j]=false;
for (i=;i<=m;i++)
{
scanf("%ld%ld",&a,&b);
vis[a][b]=true;
}
//如果是无向图,a能到达b意味着b也能到达a,所以可以求a->b(a<b),i<j<k
//如果没有if:操作n*n*n
//如果有if:判断n*n+n*(n-1)*n次,操作n*(n-1)*(n-2)
//所以直接不用if
//从j点到k点:从j到k经过的点的编号小于等于i(i=1,2,…,n)。当然也可以从j直达到k。
for (i=;i<=n;i++)
for (j=;j<=n;j++)
//if (i!=j)
for (k=;k<=n;k++)
//if (i!=j && i!=k)
vis[j][k]=vis[j][k] || (vis[j][i] && vis[i][k]);
//if (vis[j][i] && vis[i][k])
//vis[j][k]=true;
for (i=;i<=n;i++)
{
printf("%ld : ",i);
for (j=;j<=n;j++)
if (vis[i][j])
printf("%ld ",j);
printf("\n");
}
return ;
}
/*
5 5
1 2
2 3
1 3
4 5
5 3
*/

其实传递闭包跟floyd很像,原理都是一样的。

poj3660(Cow Contest)解题报告的更多相关文章

  1. POJ3660——Cow Contest(Floyd+传递闭包)

    Cow Contest DescriptionN (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a prog ...

  2. POJ-3660.Cow Contest(有向图的传递闭包)

      Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17797   Accepted: 9893 De ...

  3. POJ3660:Cow Contest(Floyd传递闭包)

    Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16941   Accepted: 9447 题目链接 ...

  4. USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】

    nocows解题报告------------------------------------------------------------------------------------------ ...

  5. POJ3660 Cow Contest —— Floyd 传递闭包

    题目链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  6. POJ-3660 Cow Contest( 最短路 )

    题目链接:http://poj.org/problem?id=3660 Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, ar ...

  7. POJ3660 Cow Contest floyd传递闭包

    Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming con ...

  8. POJ3660 Cow Contest【最短路-floyd】

    N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we ...

  9. poj3660 Cow Contest(Floyd-Warshall方法求有向图的传递闭包)

    poj3660 题意: 有n头牛, 给你m对关系(a, b)表示牛a能打败牛b, 求在给出的这些关系下, 能确定多少牛的排名. 分析: 在这呢先说一下关系闭包: 关系闭包有三种: 自反闭包(r), 对 ...

随机推荐

  1. tomcat相关配置技巧梳理 (修改站点目录、多项目部署、限制ip访问、大文件上传超时等)

    tomcat常用架构:1)nginx+tomcat:即前端放一台nginx,然后通过nginx反向代理到tomcat端口(可参考:分享一例测试环境下nginx+tomcat的视频业务部署记录)2)to ...

  2. android开发之图表

    在这里使用的插件为Mpchart,只以折线图为例.首先需要导入

  3. githup地址

    githup地址:https://github.com/caowenjing/test.git

  4. Daily Scrum- 12/23

    Meeting Minutes 与Travis和Zhongqiu讨论了Beta的Feature以及更长期的计划: 讨论了一些使用及设计上的Bug (Feature); 开始了新的开发周期: Burnd ...

  5. Mock.js的简易使用

    一:安装 npm install mockjs --save-dev 二:引入 在src目录下创建mock.js文件,输入以下代码: // 引入mockjs const Mock = require( ...

  6. PAT L2-021 点赞狂魔

    https://pintia.cn/problem-sets/994805046380707840/problems/994805058485469184 微博上有个“点赞”功能,你可以为你喜欢的博文 ...

  7. Linux下运行Shell脚本或者可执行文件Executable方法

    绝对路径 /xxx/xxx/something.sh /xxx/xxx/executable 相对路径 ./something.sh ./executable 注意:前边得加./,可不是像window ...

  8. Hadoop and net core a match made in docker

    https://blog.sixeyed.com/hadoop-and-net-core-a-match-made-in-docker/

  9. [CB转帖]台湾晶圆厂产能居全球第一 大陆排名第五但增长最多

    台湾晶圆厂产能居全球第一 大陆排名第五但增长最多 据台湾地区媒体报道,近日市场调查机构IC Insights发布了各个地区或国家晶圆厂月产能排名,其中台湾地区排名第一,韩国排名第二,日本排名第三,美国 ...

  10. jQuery 簡介

    jQuery:是一個js庫,可以極大地簡化編程,“寫得少做得多”. jquery的作用: 挑選元素.操作屬性.事件函數.動畫和效果.ajax: jQuery庫:google和microsoft都支持, ...