【基础练习】codevs1506 传话题解

题目描述 Description

一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人。

如果a认识b,b不一定认识a。

所有人从1到n编号,给出所有“认识”关系,问如果i发布一条新消息,那么会不会经过若干次传话后,这个消息传回给了i,1<=i<=n。

输入描述 Input Description

第一行是n和m,表示人数和认识关系数。

接下来的m行,每行两个数a和b,表示a认识b。1<=a, b<=n。认识关系可能会重复给出,但一行的两个数不会相同。

输出描述 Output Description

一共n行,每行一个字符T或F。第i行如果是T,表示i发出一条新消息会传回给i;如果是F,表示i发出一条新消息不会传回给i。

样例输入 Sample Input

4 6

1 2

2 3

4 1

3 1

1 3

2 3

样例输出 Sample Output

T

T

T

F

数据范围及提示 Data Size & Hint

n<=1000

1<=a, b<=n

不知道为什么那么多人都说BFS和DFS 或许吧 但是有人超时 其实这个显然就是传递闭包啊

由于code出问题了 直接上代码

//codevs1506 ´«»° ´«µÝ±Õ°ü
//copyright by ametake
#include<cstdio>
#include<cstring>
using namespace std;

const int maxn=1000+10;
int n,m,a,b;
bool map[maxn][maxn];

int main()
{
	freopen("1.txt","r",stdin);
	memset(map,0,sizeof(map));
	scanf("%d%d",&n,&m);
	for (int i=1;i<=m;i++)
	{
		scanf("%d%d",&a,&b);
		map[a][b]=1;
	}
	for (int k=1;k<=n;k++)
	  for (int i=1;i<=n;i++)
	    for (int j=1;j<=n;j++)
	    {
	    	map[i][j]=map[i][j]||(map[i][k]&&map[k][j]);
		}
	for (int i=1;i<=n;i++)
	{
		if (map[i][i]) printf("T\n");
		else printf("F\n");
	}
	return 0;
}

——一往情深深几许,深山夕照深秋雨

时间: 2024-08-29 13:18:24

【基础练习】codevs1506 传话题解的相关文章

【基础练习】【传递闭包】codevs1506 传话题解

题目描述 Description 一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人. 如果a认识b,b不一定认识a. 所有人从1到n编号,给出所有"认识"关系,问如果i发布一条新消息,那么会不会经过若干次传话后,这个消息传回给了i,1<=i<=n. 输入描述 Input Description 第一行是n和m,表示人数和认识关系数. 接下来的m行,每行两个数a和b,表示a认识b.1<=a, b<=n.认识关系可

codevs 1506 传话 题解

Codevs 1506传话 题解 1506 传话--这个题目的解法很多,你能想到几种? 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人. 如果a认识b,b不一定认识a. 所有人从1到n编号,给出所有"认识"关系,问如果i发布一条新消息,那么会不会经过若干次传话后,这个消息传回给了i,1<=i<=n

Contest2195 - 2019-4-25 高一noip基础知识点 测试8 题解版

(因为david_alwal太懒了,所以本期题解作者为Th Au K,码风不同请自行适应) 传送门 T1 BFS?贪心?我也说不清 反正就是对每一个“#”搜一下他的旁边有没有“#”就行了 代码 T2 excrt 注意一下边界就行了 代码 T3 BFS 出题老师很51地搞错了数据范围 给了200*150实际开了1000*1000过的 注意对于每一个传送门 要判断这个点要传送到的点是否到过 同样要在这个点要传送到的点打标记 代码 T4 二分天数(疯狂diss david_alwal的递归二分) 左边

codevs1506传话(kosaraju算法)

- - - - - - - - 一个()打成[] 看了一晚上..... /* 求强连通分量 kosaraju算法 边表存图 正反构造两个图 跑两边 分别记下入栈顺序 和每个强连通分量的具体信息 */ #include<iostream> #include<cstring> #include<cstdio> #include<stack> #define maxn 1010 #define maxx 10010 using namespace std; int

HDU 5384 Danganronpa (字典树运用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5384 题面: Danganronpa Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 512    Accepted Submission(s): 284 Problem Description Danganronpa is a vid

硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你!

Awsome Java Great Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架.软件或者教程.这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将 Github 上非常棒的 Java 开源项目整理下来的想法.我会按照几个维度对项目进行分类,以便大家查阅.当然,如果你觉得不错的话,欢迎给本项目点个 Star.我会用我的业余时间持续完善这份名

硬核! Github上 ,star超高的Java 开源项目分享给你!

Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架.软件或者教程.这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将 Github 上非常棒的 Java 开源项目整理下来的想法.我会按照几个维度对项目进行分类,以便大家查阅.当然,如果你觉得不错的话,欢迎给本项目点个 Star.我会用我的业余时间持续完善这份名单

20个GitHub最热门的Java开源项目:文档、框架、工具

专注于Java领域优质技术,欢迎关注 文章来源:JavaGuide 以下涉及到的数据统计,数据来源:https://github.com/trending/java?since=monthly[1] .下面推荐的内容从 Java 学习文档到最热门的框架再到热门的工具应有尽有,建议收藏+在看! 1.LeetCodeAnimation •Github 地址: https://github.com/MisterBooo/LeetCodeAnimation[2] •Star: 29.0k (11,492

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet