Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
顶楼上的,此题用动态规划写,附代码In Reply To:水题,用BFS存上父节点,倒序输出就可以了。 Posted by:1196494730 at 2018-08-24 11:27:15 #include <cstdio> #include <cstring> #define Min(a,b) ((a)<(b)?(a):(b)) using namespace std; int a[10][10],f[10][10]; void into() { for(int i=0;i<5;i++) for(int j=0;j<5;j++) scanf("%d",&a[i][j]); } void js() { memset(f,0x3f,sizeof(f)); f[0][0]=0; for(int i=0;i<5;i++) for(int j=0;j<5;j++) if(!a[i][j]) { if(i-1>=0)f[i][j]=Min(f[i][j],f[i-1][j]); if(j-1>=0)f[i][j]=Min(f[i][j],f[i][j-1]); f[i][j]++; } } void train(int x,int y) { if(x==0 && y==0) { printf("(%d, %d)\n",x,y); return ; } if(f[x-1][y]<f[x][y-1])train(x-1,y); else train(x,y-1); printf("(%d, %d)\n",x,y); } int main() { into(); js(); train(4,4); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator