時間限制: 1000 ms 內(nèi)存限制: 65536 KB

提交數(shù): 31679 通過數(shù): 14329
【題目描述】給出一個roe×col的大寫字母矩陣,一開始的位置為左上角,你可以向上下左右四個方向移動,并且不能移向曾經(jīng)經(jīng)過的字母。問最多可以經(jīng)過幾個字母。
【輸入】第一行,輸入字母矩陣行數(shù)R和列數(shù)S,1≤R,S≤20。
接著輸出R行S列字母矩陣。
【輸出】最多能走過的不同字母的個數(shù)。
【輸入樣例】3 6
HFDFFB
AJHGDH
DGAGEH
【輸出樣例】6
題解較為棘手的深搜題,坑很多,麻煩也很多。
第一個麻煩,輸入是字符,中間轉(zhuǎn)換成數(shù)字時不要弄錯。
第二個麻煩,很難找到什么時候統(tǒng)計新增加的訪問個數(shù)好,后來那我們索性就麻煩一點(diǎn),把它寫入形參,每次運(yùn)行時與全局變量比較。注意,這樣寫是沒有問題的,因為在最后一次執(zhí)行時不會繼續(xù)搜索,故該答案就是正確的答案。
同時也需要注意一個問題,出發(fā)前需要把起點(diǎn)先標(biāo)記掉,不然就容易出錯。
除此之外,就很簡單啦,上代碼!
#includeusing namespace std;
const int M=25;
char e[M][M];
int ans;
int r,s;
int vis[30],dx[]={1,-1,0,0},dy[]={0,0,1,-1};
void dfs(int x,int y,int ans1){
ans=max(ans,ans1);
int d=0;
for(int i=0; i<4; i++){
int tx=x+dx[i],ty=y+dy[i];
if(tx>=1 && tx<=r && ty>=1 && ty<=s && !vis[e[tx][ty]-'A'+1]){
vis[e[tx][ty]-'A'+1]=1;
dfs(tx,ty,ans1+1);
vis[e[tx][ty]-'A'+1]=0;
}
}
}
int main(){
scanf("%d%d",&r,&s);
for(int i=1; i<=r; i++)
scanf("%s",e[i]+1);
vis[e[1][1]-'A'+1]=1;
dfs(1,1,1);
printf("%d",ans);
return 0;
} 碼字不易,關(guān)注點(diǎn)贊收藏支持一下吧!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
新聞名稱:c++信息學(xué)奧賽一本通1212題解-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://www.chinadenli.net/article44/docdee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、面包屑導(dǎo)航、企業(yè)建站、搜索引擎優(yōu)化、Google、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容