hdu 1078
2018-06-17 21:19:45来源:未知 阅读 ()
1 #include<iostream> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 int A[150][150]; 6 int dp[150][150]; 7 int maxv=0; 8 int n,m; 9 int tr[4][2]= {{-1,0},{1,0},{0,-1},{0,1}};//上下左右 10 int Find(int x,int y) 11 { 12 if(dp[x][y]!=0) return dp[x][y]; 13 for(int i=0; i<4; i++) 14 { 15 for(int j=1; j<=m; j++) 16 { 17 int x1,y1; 18 if(tr[i][0]==1) 19 { 20 x1=x+j; 21 y1=y; 22 } 23 if(tr[i][0]==-1) 24 { 25 x1=x-j; 26 y1=y; 27 } 28 if(tr[i][1]==-1) 29 { 30 x1=x; 31 y1=y-j; 32 } 33 if(tr[i][1]==1) 34 { 35 x1=x; 36 y1=y+j; 37 } 38 if(x1>=1&&x1<=n&&y1>=1&&y1<=n&&A[x][y]<A[x1][y1]) 39 { 40 dp[x][y]=max(Find(x1,y1)+A[x1][y1],dp[x][y]); 41 } 42 } 43 } 44 return dp[x][y]; 45 } 46 int main() 47 { 48 49 while(cin>>n>>m) 50 { 51 maxv=0; 52 if(n==-1&&m==-1) break; 53 memset(dp,0,sizeof(dp)); 54 memset(A,0,sizeof(A)); 55 for(int i=1; i<=n; i++) 56 { 57 for(int j=1; j<=n; j++) 58 { 59 cin>>A[i][j]; 60 } 61 } 62 Find(1,1); 63 cout<<dp[1][1]+A[1][1]<<endl; 64 } 65 66 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:第六节蓝桥杯 方格填数
下一篇:第七届蓝桥杯 四平方和
- HDU-2955-Robberies(0-1背包) 2020-03-30
- hdu1455 拼木棍(经典dfs) 2020-02-29
- anniversary party_hdu1520 2020-02-16
- hdu1062 text reverse 2020-01-27
- hdu4841 2020-01-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash