比赛 |
20111111 |
评测结果 |
AAAAAAAAAA |
题目名称 |
传话 |
最终得分 |
100 |
用户昵称 |
Truth.Cirno |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-11 10:33:28 |
显示代码纯文本
#include <cstdio>
using namespace std;
int n,m,way[1001]={0},map[1001][999]={{0}};
bool bfs(int st,int en)
{
int i,tail=0,head=0,que[1000]={st};
bool used[1001]={false};
while (tail<=head)
{
for (i=0;i<way[que[tail]];i++)
{
if (!used[map[que[tail]][i]])
{
head++;
que[head]=map[que[tail]][i];
used[map[que[tail]][i]]=true;
if (que[head]==en)
return(1);
}
}
tail++;
}
return(0);
}
int main(void)
{
freopen("messagez.in","r",stdin);
freopen("messagez.out","w",stdout);
int i,j,temp,temp2;
bool dup,able;
scanf("%d %d\n",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d %d\n",&temp,&temp2);
dup=false;
for (j=0;j<way[temp];j++)
if (map[temp][j]==temp2)
{
dup=true;
break;
}
if (!dup)
map[temp][way[temp]++]=temp2;
}
for (i=1;i<=n;i++)
{
able=bfs(i,i);
if (able)
printf("T\n");
else
printf("F\n");
}
fclose(stdin);
fclose(stdout);
return(0);
}