【模拟】周游列国
? ? ? ? ?周游列國 ? ? ? ? ? ? ? ? ? ? ? ? Time Limit:1000MS?????Memory Limit:32768KB?????64bit IO Format:%lld & %llu
如果遇到#應直接退回到前一狀態。
最后判斷當走完設計好的路線后,這7個國家是否都已經走過。 #include<stdio.h> #include<string.h> int main() {int n, m ,i, j, cnt, x, y, len;char s[100000], mapp[100][100];int vis[10];while(~scanf("%s", s)){cnt =0;x = y = 0;//用x,y標記S的位置len = 0;memset(mapp, 0, sizeof(mapp));memset(vis, 0, sizeof(vis));scanf("%d%d%*c", &n, &m);for(i=1; i<=n; i++)for(j=1; j<=m; j++){scanf("%c", &mapp[i][j]);if(j==m)scanf("%*c");if(mapp[i][j]=='S'){x = i;y = j;}}len = strlen(s);for(i=0; i<len; i++){if(s[i]=='R'){y = y+1;if(mapp[x][y]=='#')y = y-1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}if(s[i]=='L'){y = y-1;if(mapp[x][y]=='#')y = y+1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}if(s[i]=='U'){x = x-1;if(mapp[x][y]=='#')x = x+1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}if(s[i]=='D'){x = x+1;if(mapp[x][y]=='#')x = x-1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}}for(j=0; j<10; j++){if(vis[j]!=0)cnt++;}if(cnt==7) printf("Yes\n");else printf("No\n");}return 0; }
Description
? ? ? ?大家都知道孔子吧,春秋戰國時候的一個老頭兒。當時出國還不用護照,所以他經常趕著牛車帶著弟子們周游列國。可是這路也并不是那么好走的,當遇到高山時孔子他們就得繞著走了,你得考慮他牛車的實力能不能hold住啊。當然,孔子是個很聰明的人,每次出門前都會四處打聽,然后制定出一個趕車路線,然后按照路線去走。但是,由于很多路沒有親自走過他也不確定按這個路線到底能不能周游列國?然而,你有當時的地圖,希望你編程判斷一下按照孔子的行車路線能不能周游列國。
Input
? ? ? ?第一行是行車路線即一個字符串只包含L,R,U和D分別代表左走,右走,上走,下走。接下來以上是兩個整數H和W,0 < H,W < 20,?代表地圖的高和寬。然后是H*W的地圖。S代表孔子的起點。標有1~7的區域分別代表7個國家的領土,#代表高山。
Output
如果孔子能周游列國即經過這7個國家則輸出Yes,否則輸出No。
Sample Input
RDDDDLRRRRUU 5 5 S1111 22#22 33#44 56#77 56777Sample Output
Yes如果遇到#應直接退回到前一狀態。
最后判斷當走完設計好的路線后,這7個國家是否都已經走過。 #include<stdio.h> #include<string.h> int main() {int n, m ,i, j, cnt, x, y, len;char s[100000], mapp[100][100];int vis[10];while(~scanf("%s", s)){cnt =0;x = y = 0;//用x,y標記S的位置len = 0;memset(mapp, 0, sizeof(mapp));memset(vis, 0, sizeof(vis));scanf("%d%d%*c", &n, &m);for(i=1; i<=n; i++)for(j=1; j<=m; j++){scanf("%c", &mapp[i][j]);if(j==m)scanf("%*c");if(mapp[i][j]=='S'){x = i;y = j;}}len = strlen(s);for(i=0; i<len; i++){if(s[i]=='R'){y = y+1;if(mapp[x][y]=='#')y = y-1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}if(s[i]=='L'){y = y-1;if(mapp[x][y]=='#')y = y+1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}if(s[i]=='U'){x = x-1;if(mapp[x][y]=='#')x = x+1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}if(s[i]=='D'){x = x+1;if(mapp[x][y]=='#')x = x-1;if(mapp[x][y]>='0' && mapp[x][y]<='7')vis[mapp[x][y]-'0'] = 1;}}for(j=0; j<10; j++){if(vis[j]!=0)cnt++;}if(cnt==7) printf("Yes\n");else printf("No\n");}return 0; }
?
轉載于:https://www.cnblogs.com/6bing/p/4115678.html
總結
- 上一篇: asp.net后台调用javascrip
- 下一篇: expression tree to s