HDOJ 1428 漫步校园
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity3D学习笔记(一) 模型和贴图
- 下一篇: Android移动端音视频的快速开发教程