日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

刷过一题之消息转发

發布時間:2025/4/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 刷过一题之消息转发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

信息技術社團的同學來自各個班級,為了增加友誼,我們在課余時間進行了一個消息轉發游戲,如果a認識b,那么a收到某個消息,就會把這個消息傳給b,以及所有a認識的人。如果a認識b,b不一定認識a。所有人從1到n編號,給出所有“認識”關系,問如果i號同學發布一條新消息,那么會不會經過若干次轉發后,這個消息又傳回給了i(1<=i<=n)?

?

輸入:

第一行是兩個數n(n<1000)和m(m<10000),分別表示人數和認識關系數。接下來的m行,每行兩個數a和b,表示a認識b。1<=a和?b<=n。認識關系可能會重復給出,但一行的兩個數不會相同。每行的兩個數之間有一個空格分隔。

?

輸出:

一行共有n個字符(只能是T或F)。第i個字符:如果是T,表示i號同學發出一條新消息會傳回給i;如果是F,表示i號同學發出一條新消息不會傳回給i。

?

輸入示例:

4?6
1?2
2?3
4?1
3?1
1?3
2?3

?

輸出示例:

TTTF

?

?

其實這題正解是用DFS,但是我還是用了樹……

?

1 #include<iostream> 2 using namespace std; 3 bool ans[10005]; 4 int read() 5 { 6 int x=0,f=1; 7 char ch=getchar(); 8 while(ch<'0'||ch>'9') 9 { 10 if(ch=='-') f=-1; 11 ch=getchar(); 12 } 13 while(ch>='0'&&ch<='9') 14 { 15 x=x*10+ch-'0'; 16 ch=getchar(); 17 } 18 return x*f; 19 } 20 int main() 21 { 22 int a,b,temp,l=1,flag=1; 23 b=read();a=read(); 24 int n[a],m[a]; 25 for(int i=0;i<a;i++) {n[i]=read();m[i]=read();} 26 for(int i=0;i<a-1;i++) 27 for(int j=i+1;j<a;j++) 28 if(n[i]>n[j]) 29 { 30 swap(n[i],n[j]); 31 swap(m[i],m[j]); 32 } 33 while(l<=b) 34 { 35 for(int i=0;i<a;i++) if(n[i]==l) ans[m[i]]=true; 36 for(int i=0;i<a;i++) if(ans[n[i]]==true) ans[m[i]]=true; 37 for(int i=0;i<a;i++) if(ans[n[i]]==true) ans[m[i]]=true; 38 if(ans[l]==true) cout<<"T"; 39 else if(ans[l]==false) cout<<"F"; 40 memset(ans,0,sizeof(ans)); 41 l++; 42 } 43 system("pause>nul"); 44 return 0; 45 }

?

轉載于:https://www.cnblogs.com/nightfury/p/5040888.html

總結

以上是生活随笔為你收集整理的刷过一题之消息转发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。