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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HDU ACM 1181 变形课 (广搜BFS + 动态数组vector)-------第一次使用动态数组vector

發布時間:2023/12/13 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU ACM 1181 变形课 (广搜BFS + 动态数组vector)-------第一次使用动态数组vector 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://acm.hdu.edu.cn/showproblem.php?pid=1181

題意:給我若干個單詞,若單詞A的結尾與單詞B的開頭相同,則表示A能變成B,判斷能不能從b開頭變成m結尾.

   如: big-got-them

?

第一次使用動態數組vector

View Code 1 #include <iostream> 2 #include <vector> 3 #include <queue> 4 using namespace std; 5 const int MAX = 30; 6 7 int main() 8 { 9 vector <int> map[MAX]; 10 bool used[MAX] = {0}; 11 char str[110]; 12 while(cin>>str) 13 { 14 15 int mark = 0; 16 if(str[0] == '0') 17 { 18 queue <int> q; 19 q.push('b' - 'a'); 20 used['b' - 'a'] = 1; 21 while(!q.empty()) 22 { 23 int mid = q.front(); 24 q.pop(); 25 int i; 26 for(i=0;i<map[mid].size();i++) 27 { 28 if(!used[map[mid][i]]) 29 { 30 q.push(map[mid][i]); 31 used[map[mid][i]] = 1; 32 if(map[mid][i] == 'm'-'a') 33 { 34 mark = 1; 35 break; 36 } 37 } 38 } 39 if(mark) 40 { 41 break; 42 } 43 } 44 if(mark) 45 { 46 cout<<"Yes."<<endl; 47 } 48 else 49 { 50 cout<<"No."<<endl; 51 } 52 memset(used,0,sizeof(used)); 53 int i; 54 for(i=0;i<MAX;i++) 55 { 56 map[i].clear(); 57 } 58 } 59 else 60 { 61 map[str[0] - 'a'].push_back(str[strlen(str) - 1] - 'a'); 62 } 63 } 64 }

?

?

?

轉載于:https://www.cnblogs.com/zxotl/archive/2012/08/30/2663263.html

總結

以上是生活随笔為你收集整理的HDU ACM 1181 变形课 (广搜BFS + 动态数组vector)-------第一次使用动态数组vector的全部內容,希望文章能夠幫你解決所遇到的問題。

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