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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDOJ 1428 漫步校园

發(fā)布時(shí)間:2024/9/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDOJ 1428 漫步校园 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

漫步校園

Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2091????Accepted Submission(s): 602


Problem DescriptionLL最近沉迷于AC不能自拔,每天寢室、機(jī)房兩點(diǎn)一線。由于長時(shí)間坐在電腦邊,缺乏運(yùn)動(dòng)。他決定充分利用每次從寢室到機(jī)房的時(shí)間,在校園里散散步。整個(gè)HDU校園呈方形布局,可劃分為n*n個(gè)小方格,代表各個(gè)區(qū)域。例如LL居住的18號(hào)宿舍位于校園的西北角,即方格(1,1)代表的地方,而機(jī)房所在的第三實(shí)驗(yàn)樓處于東南端的(n,n)。因有多條路線可以選擇,LL希望每次的散步路線都不一樣。另外,他考慮從A區(qū)域到B區(qū)域僅當(dāng)存在一條從B到機(jī)房的路線比任何一條從A到機(jī)房的路線更近(否則可能永遠(yuǎn)都到不了機(jī)房了…)。現(xiàn)在他想知道的是,所有滿足要求的路線一共有多少條。你能告訴他嗎?

Input每組測試數(shù)據(jù)的第一行為n(2=<n<=50),接下來的n行每行有n個(gè)數(shù),代表經(jīng)過每個(gè)區(qū)域所花的時(shí)間t(0<t<=50)(由于寢室與機(jī)房均在三樓,故起點(diǎn)與終點(diǎn)也得費(fèi)時(shí))。

Output針對(duì)每組測試數(shù)據(jù),輸出總的路線數(shù)(小于2^63)。

Sample Input3
1 2 3
1 2 3
1 2 3
3
1 1 1
1 1 1
1 1 1
Sample Output1
6
AuthorLL
SourceACM暑期集訓(xùn)隊(duì)練習(xí)賽(三)
Recommendlinle
4面都可以走,只能往到離終點(diǎn)距離近的點(diǎn)走。。。。。


#include <iostream>#include <cstdio>#include <cstring>#include <queue>
using namespace std;

struct po{int x;int y;};
int dir_x[4]={1,-1,0,0};int dir_y[4]={0,0,1,-1};
long long int a[55][55];long long int dp[55][55];long long int distan[55][55];int n;
void bfs(){queue<po> q;po tlp;tlp.x=n-1; ?tlp.y=n-1;q.push(tlp);
while(!q.empty()){po cur=q.front();po nxt;q.pop();for(int i=0;i<4;i++){nxt.x=cur.x+dir_x;nxt.y=cur.y+dir_y;if(nxt.y>=0&&nxt.y<n&&nxt.x>=0&&nxt.x<n&&distan[nxt.x][nxt.y]>distan[cur.x][cur.y]+a[nxt.x][nxt.y]){distan[nxt.x][nxt.y]=distan[cur.x][cur.y]+a[nxt.x][nxt.y];q.push(nxt);}}}}
long long int dfs(int x,int y){if(dp[x][y]!=0) return dp[x][y];if(x==n-1&&y==n-1) return 1;
for(int i=0;i<4;i++){int tx=x+dir_x;int ty=y+dir_y;
if(tx>=0&&tx<n&&ty>=0&&ty<n&&distan[tx][ty]<distan[x][y]){dp[x][y]+=dfs(tx,ty);}}return dp[x][y];}
int main(){while(scanf("%d",&n)!=EOF){memset(dp,0,sizeof(dp));for(int i=0;i<n;i++){for(int j=0;j<n;j++){scanf("%I64d",&a[j]);distan[j]=0x3f3f3f3f;}}distan[n-1][n-1]=0;bfs();printf("%I64d\n",dfs(0,0));}
return 0;}

轉(zhuǎn)載于:https://www.cnblogs.com/CKboss/p/3351014.html

總結(jié)

以上是生活随笔為你收集整理的HDOJ 1428 漫步校园的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。