sdut 1570 c旅行

用搜索(bfs,dfs)做了半天,都超时,原来是dp;

参考博客:http://www.cnblogs.com/liuzezhuang/archive/2012/07/29/2613820.html

 #include <iostream>
#include<cstring>
#include<queue>
#include<cstdlib>
#include<cstdio>
using namespace std; int map[][],b[][];
int main()
{
int h,w,i,j;
cin>>h>>w; for(i=; i<=h; i++)
for(j=; j<=w; j++)
cin>>map[i][j];
b[h][]=; for(i=h; i>=; i--)
for(j=; j<=w; j++)
{
if(map[i][j])
b[i][j]=;
else if(i==h&&j>)
b[i][j]=b[i][j-];
else if(j==&&i<h)
b[i][j]=b[i+][j];
else if(i!=h&&j!=&&map[i][j]!=)
b[i][j]=b[i+][j]+b[i][j-];
}
cout<<b[][w]<<endl;
return ;
}
上一篇:android 入门 002 (拨打电话,发送短信)


下一篇:Java并发机制及锁的实现原理