【基础练习】【传递闭包】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

一看题目显然传递闭包 再看数据规模 1000 足够小到跑三次方 更加坚定不移地码floyd

直接上代码 哭下的是代码写错了一个地方调了半天

——今日割五城,明日割十城,然后得一夕安寝。起视四境,而秦兵又至矣。

时间: 2024-11-05 03:16:10

【基础练习】【传递闭包】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

codevs1506传话(kosaraju算法)

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

【基础练习】codevs1294 全排列题解

惊奇的发现我竟然没写过这个 粘了黄学长的代码 因为所有的递归全排列拥有共同的灵魂 我经常犯得错误是把取消标记放到循环外 至今没开博的查查比君纠正过很多次 所以记住一定递归后马上取消标记 --水茫茫,平沙雁,旋惊散.

BZOJ1492:[NOI2007]货币兑换——题解

http://www.lydsy.com/JudgeOnline/problem.php?id=1492 (题目描述太长了不粘贴了……) ……………………………………………………… 我 是自己做的 抄开心 的 …………………………………………………………… 所以……emm,简单的dp就是: f(i)=max(a[i]*x[j]+b[i]*y[j]) 其中x和y表示在第i 天,用最多的钱能够换成的A券和B券. 完后……这怎么斜率优化啊……如果把x和y看做点来斜率优化的话它们也没有单调性啊. 推荐一

HDU 3507(斜率优化dp

题目:每次选取连续的若干数字的代价 要求选取虽有数字的最小代价. 思路:基础斜率dp题,题解见http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657650.html /* * @author: Cwind */ #pragma comment(linker, "/STACK:102400000,102400000") #include <iostream> #include <map> #include &

反转(开关问题) POJ 3276

POJ 3276 题意:n头牛站成线,有朝前有朝后的的,然后每次可以选择大小为k的区间里的牛全部转向,会有一个最小操作m次使得它们全部面朝前方.问:求最小操作m,再此基础上求k. 题解:1.5000头牛不是小数目,再怎么也得要n^2的算法,其中,枚举k是需要的,这就有n了,只能想办法给出一个n在O(n)时间内求出最小次数了. 2.对于给定的k,要想O(n)内把次数算出来,即只能扫一遍,一想到的必定是从前往后扫,遇到面朝后的就转头,但这一转牵扯太多,要改太多东西,k一大直接崩溃. 3.对于每次扫描

20190824考试

前言:今天参加某谷的比赛,蒟蒻自闭,没远大追求回的我去搞基础,其实出题人发了题解,主要总结得失. T1:给定一串数,分组求异或和,ans=Σ分组异或和,求ans最大. S1:之前做过区间求异或和,开始以为是线段树,想了一下,将数二进制拆分,发现将数一个个异或就是答案.不会证明,但感性理解一下,发现分组的目就是尽可能将同位置的'1'抵消,一个个异或看似没分组,实际已将可能的同位置'1'抵消,严谨证明看题解吧. #include<iostream> #include<algorithm>

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

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