Cow Contest POJ
来源:互联网 发布:全国二手车评估软件 编辑:程序博客网 时间:2024/05/18 21:43
题意
有n(1<=n<=100)个学生参加编程比赛。
给出m条实力信息。(1<=M<=4500)
其中每一条的格式为 A B (1<=A<=N,1<=B<=N,A!=B) 意思是A的实力比B强。
如果A比B强且B比C强,那么A一定比C强。
问最后有多少名学生可以确定他的排名。
保证输入信息不存在矛盾
题解
n<=100!!!
若A强于B则A向B连一条单向边
直接强行floyed判断连通性,如果这个点能到达的点数和能到达它的点数和为n-1则说明它的排名是确定的
常数巨大的代码
# include <stdio.h># include <stdlib.h># include <iostream># include <string.h># define IL inline# define RG register# define mem(a, b) memset(a, b, sizeof(a))# define Max(a, b) (((a) > (b)) ? (a) : (b))# define Min(a, b) (((a) < (b)) ? (a) : (b))using namespace std;IL int Get(){ RG char c = '!'; RG int x = 0, z = 1; for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1; for(; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - '0'; return x * z;}const int MAXN = 101;int n, m, flag, ans, vis[MAXN], map[MAXN][MAXN];int main(){ n = Get(); m = Get(); for(RG int i = 1; i <= m; i++) map[Get()][Get()] = 1; for(RG int k = 1; k <= n; k++) for(RG int i = 1; i <= n; i++) for(RG int j = 1; j <= n; j++) map[i][j] |= (map[i][k] & map[k][j]); for(RG int i = 1; i <= n; i++) for(RG int j = 1; j <= n; j++) vis[j] += map[i][j], vis[i] += map[i][j]; for(RG int i = 1; i <= n; i++) ans += (vis[i] == n - 1); printf("%d\n", ans); return 0;}
阅读全文
1 0
- poj 3660 Cow Contest
- POJ 3660 Cow Contest
- POJ 3660 Cow Contest
- poj 3660 Cow Contest
- POJ-3660-Cow Contest
- poj-3660 cow contest
- POJ 3660 Cow Contest
- poj 3660 Cow Contest
- poj 3660 Cow Contest
- POJ Cow Contest
- poj 3660 Cow Contest
- poj-3660 Cow Contest
- POJ 3660 Cow Contest
- POJ -- 3660 Cow Contest
- POJ 3660 Cow Contest
- poj 3660 Cow Contest
- POJ 3660 Cow Contest
- POJ 3660 Cow Contest
- csv文件转化为数组及数组的切片
- 给你的电脑降降温!!!!!!
- hibernate入门(一)
- 【转】(DT系列一)DTS结构及其编译方法----不错
- HDU-3549 Flow Problem (最大流模板)
- Cow Contest POJ
- hdu 6033 Add More Zero
- LightOJ
- Servlet
- 水题。。。810A
- 欢迎使用CSDN-markdown编辑器
- 读书标注笔
- 数据库索引跟B+Tree的关系,索引优化策略
- 一份比较全面的Freemarker教程