Rank

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1622    Accepted Submission(s):
625

Problem Description
there are N ACMers in HDU team.
ZJPCPC Sunny Cup
2007 is coming, and lcy want to select some excellent ACMers to attend the
contest. There have been M matches since the last few days(No two ACMers will
meet each other at two matches, means between two ACMers there will be at most
one match). lcy also asks"Who is the winner between A and B?" But sometimes you
can't answer lcy's query, for example, there are 3 people, named A, B, C.and 1
match was held between A and B, in the match A is the winner, then if lcy asks
"Who is the winner between A and B", of course you can answer "A", but if lcy
ask "Who is the winner between A and C", you can't tell him the answer.
As
lcy's assistant, you want to know how many queries at most you can't tell
lcy(ask A B, and ask B A is the same; and lcy won't ask the same question
twice).
 
Input
The input contains multiple test cases.
The first
line has one integer,represent the number of test cases.
Each case first
contains two integers N and M(N , M <= 500), N is the number of ACMers in HDU
team, and M is the number of matchs have been held.The following M lines, each
line means a match and it contains two integers A and B, means A wins the match
between A and B.And we define that if A wins B, and B wins C, then A wins
C.
 
Output
For each test case, output a integer which represent
the max possible number of queries that you can't tell lcy.
 
Sample Input
3
3 3
1 2
1 3
2 3
3 2
1 2
2 3
4 2
1 2
3 4
 
Sample Output
0
0
4

 
给出n人的m对关系图,a b表示a能战胜b,战胜有传递性,即(a,b)(b,c)--->(a,c)
mdzz一开始bfs跑一波,双向建图,后来发现不服对,假如(1,5)(1,6),5-6是没关系的,但由于双向建图反而有了关系,所以WA。
不如(a,b)时,e[a][b]=1表示a战胜b,e[b][a]=-1,表示b输给了a,接着Floyd跑一波,最后统计。
#include<bits/stdc++.h>
using namespace std;
int
e[][];
int
main()
{

int
t,n,m,i,j,k;
cin>>t;
while
(t--){int s=,a,b;
cin>>n>>m;memset(e,,sizeof(e));
for
(i=;i<=m;++i){
cin>>a>>b;
e[a][b]=;
e[b][a]=-;
}

for
(k=;k<=n;++k)
for
(i=;i<=n;++i)
if
(e[i][k]==){
for
(j=;j<=n;++j)
if
(e[k][j]==) e[i][j]=,e[j][i]=-; }
for
(i=;i<=n;++i)
for
(j=+i;j<=n;++j){
if
(!e[i][j]) s++;
}
cout<<s<<endl;
}

return
;
}

hdu 1704 (Floyd 传递闭包)的更多相关文章

  1. Rank HDU - 1704 【传递闭包水题】

    there are N ACMers in HDU team.ZJPCPC Sunny Cup 2007 is coming, and lcy want to select some excellen ...

  2. UVA 247 电话圈 (floyd传递闭包 + dfs输出连通分量的点)

    题意:输出所有的环: 思路:数据比较小,用三层循环的floyd传递闭包(即两条路通为1,不通为0,如果在一个环中,环中的所有点能互相连通),输出路径用dfs,递归还没有出现过的点(vis),输出并递归 ...

  3. UVA 753 UNIX 插头(EK网络流+Floyd传递闭包)

    UNIX 插头 紫书P374 [题目链接]UNIX 插头 [题目类型]EK网络流+Floyd传递闭包 &题解: 看了书之后有那么一点懂了,但当看了刘汝佳代码后就完全明白了,感觉他代码写的好牛逼 ...

  4. UVA 247 电话圈(Floyd传递闭包+输出连通分量)

    电话圈 紫书P365 [题目链接]电话圈 [题目类型]Floyd传递闭包+输出连通分量 &题解: 原来floyd还可以这么用,再配合连通分量,简直牛逼. 我发现其实求联通分量也不难,就是for ...

  5. HDU 5036 Explosion (传递闭包+bitset优化)

    <题目链接> 题目大意: 一个人要打开或者用炸弹砸开所有的门,每个门后面有一些钥匙,一个钥匙对应一个门,告诉每个门里面有哪些门的钥匙.如果要打开所有的门,问需要用的炸弹数量为多少. 解题分 ...

  6. POJ 3660 Cow ContestCow(Floyd传递闭包)题解

    题意:给出m个关系,问你能确定机头牛的排名 思路:要确定排名那必须要把他和其他n-1头牛比过才行,所以Floyd传递闭包,如果赢的+输的有n-1就能确定排名. 代码: #include<cstd ...

  7. nyoj 211——Cow Contest——————【floyd传递闭包】

    Cow Contest 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 N (1 ≤ N ≤ 100) cows, conveniently numbered 1.. ...

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

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

  9. POJ 2594 —— Treasure Exploration——————【最小路径覆盖、可重点、floyd传递闭包】

    Treasure Exploration Time Limit:6000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64 ...

随机推荐

  1. 如何在Qt Creator中创建pri文件,以及pri文件的说明

    初学Qt的人可还不会接触到这个问题,但是一旦你开始编写某个较大项目的时候,这个问题就不可避免需要解决. 对于大神们来讲可能这是个很简单的问题,但是对于新手来说,想要搞清楚需要下很大功夫. 怎么创建pr ...

  2. 使用 jQuery 进行前端验证

    前段验证脚本的教程,其基础为jQuery的插件validate.    一.可以验证哪些信息 要求输入不能为空 要求输入格式必须为电子邮箱 要求输入格式必须为URL 要求输入格式必须为日期 要求输入格 ...

  3. servlet之一(概念/如何写/运行/错误提示/乱码处理)

    # 1. 什么是Servlet?   sun公司制订的一种用来扩展web服务器功能的组件规范. ## (1) 扩展web服务器功能(servlet的产生背景)       web服务器只能处理静态资源 ...

  4. Mysql的基本语句

    Mysql的基本语句 1.查询当前数据库所有表名: -- 方案一: show tables; --方案二:jeesite为数据库 select table_name from information_ ...

  5. HTML5 Chart.js 框架

    HTML5 Chart.js 框架 版权声明:未经博主授权,内容严禁转载 ! Chart.js 概述: chart.js 是一个简单的.面向对象.为设计者开发者准备的图表绘制工具. 点击进入官方网址 ...

  6. 初步实现GoQtTemplate

    #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> //新添加 #include <opencv2/co ...

  7. 20145122《Java程序设计》第九周学习总结

    教材学习内容总结 1.JDBC代表Java数据库连接,这是一个标准的Java API与数据库无关的与Java编程语言之间的和大多数数据库连接.JDBC API支持两层和三层的处理模式对数据库的访问,但 ...

  8. [BZOJ 2200][Usaco2011 Jan]道路和航线 spfa+SLF优化

    Description Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇 (1 <= T <= 25,000),编号为1T.这些城镇之间通过R条 ...

  9. UVa 1606 两亲性分子

    https://vjudge.net/problem/UVA-1606 题意:平面上有n个点,每个点为白点或者黑点.现在需放置一条隔板,使得隔板一侧的白点数加上另一侧的黑点数总数最大.隔板上的点可以看 ...

  10. #实现详细记录登陆过系统的用户,IP地址,shell命令及详细操作的时间

    //实现详细记录登陆过系统的用户,IP地址,shell命令及详细操作的时间 将下面代码加入/etc/profile //history USER_IP = who -u am i 2> /dev ...