洛谷P2419 [USACO08JAN]牛大赛Cow Contest


对于一个能够确定名次的点,可以注意到,对于该点,入度和出度的数量加起来等于N-1
(这样还是不够准确的
确切的说是,能够到达这个点的数量和这个点能够到达的数量的和
floyd不仅可以求两个点之间的最短路径,还能求两个点彼此是否能够相互到达
最后对于一个可以确定名次的点,能够到达的所有的点 加上 能够到达该点的所有点的和必须等于n-1
当然,我们可以通过二进制来简化这个过程
最后处理结果时,设一个变量flag, 因为该点能够到达本身,flag初值赋为1
对于两个点i, j首先f[i][j] | f[j][i]
因为对于这两个点,无论从j到i或是从i到j,都需算上。
同时用flag与f[i][j] | f[j][i]相&
按位与的操作是两位全为1,则得到的值为1,也就是说,若有任何一点不能到达此点或是由此点到达,我们就无法求出该点的名次
最后我们用计数器ans累加flag的值即可
#include<bits/stdc++.h>
using namespace std;
const int maxn = ;
int n, m, ans = ;
int f[maxn][maxn]; inline int read() {
int x = , y = ;
char ch= getchar();
while(!isdigit(ch)) {
if(ch == '-') y = -;
ch = getchar();
}
while(isdigit(ch)) {
x = (x << ) + (x << ) + ch - '';
ch = getchar();
}
return x * y;
} int main() {
n = read(), m = read();
for(int i = ; i <= m; ++i) {
int x, y;
x = read(), y = read();
f[x][y] = ;
}
for(int k = ; k <= n; ++k)//floyd求两个点能否互相到达
for(int i = ; i <= n; ++i)
for(int j = ; j <= n; ++j)
f[i][j] |= f[i][k] & f[k][j];
for(int i = ; i <= n; ++i) {
int flag = ;//判断i点是否能够求出具体的名次
for(int j = ; j <= n; ++j) {
if(i == j) continue;
else flag &= f[i][j] | f[j][i];
}
ans += flag;//统计答案
}
cout << ans << '\n';
return ;
}
洛谷P2419 [USACO08JAN]牛大赛Cow Contest的更多相关文章
- 洛谷 P2419 [USACO08JAN]牛大赛Cow Contest
题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a p ...
- 洛谷—— P2419 [USACO08JAN]牛大赛Cow Contest
https://www.luogu.org/problem/show?pid=2419 题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, convenie ...
- floyd的魔改应用——洛谷P2419 [USACO08JAN]牛大赛Cow Contest 题解
想找原题请点击这里:传送门 原题: 题目背景 [Usaco2008 Jan] 题目描述 N ( ≤ N ≤ ) cows, conveniently numbered ..N, are partici ...
- bzoj1612 / P2419 [USACO08JAN]牛大赛Cow Contest(Floyd)
P2419 [USACO08JAN]牛大赛Cow Contest Floyd不仅可以算最短路,还可以处理点之间的关系. 跑一遍Floyd,处理出每个点之间是否有直接或间接的关系. 如果某个点和其他$n ...
- P2419 [USACO08JAN]牛大赛Cow Contest
P2419 [USACO08JAN]牛大赛Cow Contest 题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, conveniently number ...
- Luogu P2419 [USACO08JAN]牛大赛Cow Contest
题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a p ...
- P2419 [USACO08JAN]牛大赛Cow Contest(dfs走天下/)
题目描述 FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:).在赛场上,奶牛们按1..N依次编号.每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就 ...
- [USACO08JAN]牛大赛Cow Contest
OJ题号:洛谷2419 思路: Floyd求有向图的传递闭包,只要该点与其他所有点相连即可确定名次. #include<cstdio> #include<cstring> in ...
- luogu题解 P2419 【牛大赛Cow Contest】传递丢包
题目链接: https://www.luogu.org/problemnew/show/P2419 分析: "在交际网络中,给定若干元素和若干对二元关系,且关系具有传递性. 通过传递性推导出 ...
随机推荐
- [Leetcode] Swap nodes in pairs 成对交换结点
Given a linked list, swap every two adjacent nodes and return its head. For example,Given1->2-> ...
- POJ3450 Corporate Identity 【后缀数组】
Corporate Identity Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 7662 Accepted: 264 ...
- JS Cookie相关操作
function setCookie(cookieName, cookieValue, expires) { // 设置Cookie function getCookieName(cookieName ...
- vue中使用 echarts3.0 或 echarts2.0 (模拟迁徙图,折线图)
一.echarts3.0(官网: http://echarts.baidu.com/) 首先通过npm安装echarts依赖,安装的为3.0版本 npm install echarts -s 也可以使 ...
- Hadoop 学习之MapReduce
MapReduce充分利用了分而治之,主要就是将一个数据量比较大的作业拆分为多个小作业的框架,而用户需要做的就是决定拆成多少份,以及定义作业本身,用户所要做的操作少了又少,真是Very Good! 一 ...
- Ubuntu下使用mysqli-connect连接mysql时报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
LNMP安装好后,写了个index.php文件,里面的内容很简单,就是想测试php与mysql的通信是否正常,代码如下: <?php $host = 'localhost'; $user = ' ...
- 于是他错误的点名开始了 [Trie]
于是他错误的点名开始了 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已 ...
- 湖南大学第十四届ACM程序设计新生杯 Dandan's lunch
Dandan's lunch Description: As everyone knows, there are now n people participating in the competiti ...
- 批量添加公钥给server的bash
Bash 脚本 #/bin/bash adduser vlmonitor mkdir -p /home/vlmonitor/.ssh chown -R vlmonitor.vlmonitor /hom ...
- 【BZOJ2832&&3874】宅男小C [模拟退火][贪心]
宅男小C Time Limit: 10 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 众所周知,小C是个宅男,所以他的每 ...