poj 3256(DFS)
生活随笔
收集整理的這篇文章主要介紹了
poj 3256(DFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://acm.pku.edu.cn/JudgeOnline/problem?id=3256
題意:有k頭牛,n個牧場,m條路(每條路相連兩個牧場且單向),求全部牛都能到達的牧場有幾個。
分析:用DFS,從每頭牛所在牧場開始,走遍該牛能到的牧場,對應能到達的牧場記錄來過的牛數
心得:原先我是對每個牧場作為起點,進行DFS,當然條件是有路并且對應牧場有牛。不過比較牧場數(n≤1000)和牛數(k≤100),實在太浪費時間了。
部分代碼:
main()里的調用部分:
for(i=1; i<=cow; i++)//對應某只牛 {memset(vis, 0, sizeof(vis));//初始化下一個牧場dfs(add[i]); }dfs()
void dfs(int r) {int i;vis[r] = 1;//標記已經來過num[r]++; //對應來該牧場牛數加一for(i=1; i<=pasture; i++)if(!vis[i] && map[r][i]) dfs(i); }轉載于:https://www.cnblogs.com/submarinex/archive/2010/05/15/1941245.html
總結
以上是生活随笔為你收集整理的poj 3256(DFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: void main()是错误的
- 下一篇: 同步多线程