领土划分
来源:互联网 发布:淘宝twizzlers扭扭糖 编辑:程序博客网 时间:2024/04/30 19:40
领土划分
问题描述
著名的女王,阳姐•查兰•伊丽莎白一世有两个宠物,一个叫大黄,一个叫小昊。
女王赐予了这两个宠物一份
这片土地由
大黄喜欢吃饭,也就是说,他希望他的领地里的水稻种植量多,类似的,小昊喜欢吃面,所以他希望他的领地里的小麦种植量多。
为了这片土地的划分,大黄与小昊经常发生狗咬狗、相煎何太急的惨剧。
现在女王决定,派出一辆推土机,这辆推土机从左上角开始,每次向右向下或者向右下移动一个格子,直到走到土地的右下角为止,推土机经过的格子将变为废墟。
这样就会将土地分成上下两块,其中右上的那一块归小昊,左下的那一块归大黄。
现在女王想知道,这辆推土机如何移动,能够使得大黄领地中水稻种植总量和小昊领地中小麦种植总量之和最大?
输入
输入文件名为Divide.in。
输入第一行包含两个正整数
下接一个
保证种植量均为小于等于
输出
输出文件名为Divide.out。
输出第一行包含一个正整数,为可能的最大的两种作物种植量总和。
输入样例
4 3
K2 K3 K5
J3 K1 J1
J2 J4 K1
K1 K3 J3
输出样例
17
样例解释
移动方法为向右下,向右下,向下。总和为
数据范围
Solution
设
首先,当前位置可以是从左边走过来的。若是从左边走过来的,则
其次,当前位置也可以是从上边走过来的。若是从上边走过来的,则
从左上走过来的同理。
Code
#include <iostream>#include <cstdio>#include <cstring>#define Max(x,y) ((x)>(y)?(x):(y))using namespace std;int n,m;int MI[1510][1510],DA[1510][1510];int f[1510][1510];char str[100000];int main(){ freopen("divide.in","r",stdin); freopen("divide.out","w",stdout); memset(f,-1,sizeof f); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ char ch;int num=0,q=1; scanf("%s",str); ch=str[0]; while(str[q]<'0'||str[q]>'9')q++; while(str[q]>='0'&&str[q]<='9'){num=num*10+str[q]-'0';q++;} if(ch=='K'){ MI[i][j]=MI[i-1][j]+MI[i][j-1]-MI[i-1][j-1]+num; DA[i][j]=DA[i-1][j]+DA[i][j-1]-DA[i-1][j-1]; } else{ MI[i][j]=MI[i-1][j]+MI[i][j-1]-MI[i-1][j-1]; DA[i][j]=DA[i-1][j]+DA[i][j-1]-DA[i-1][j-1]+num; } } if(n==1||m==1){ printf("0\n"); return 0; } for(int i=1;i<=m;i++){ f[1][i]=DA[n][m-1]-DA[1][m-1]; } for(int i=2;i<=n;i++){ for(int j=1;j<=m;j++){ f[i][j]=f[i][j-1]; f[i][j]=Max(f[i][j],f[i-1][j]+MI[i-1][m]-MI[i-1][j]-MI[i-2][m]+MI[i-2][j]-(DA[i][m-1]-DA[i][j-1]-DA[i-1][m-1]+DA[i-1][j-1])); if(j-1!=0){ f[i][j]=Max(f[i][j],f[i-1][j-1]+MI[i-1][m]-MI[i-1][j-1]-MI[i-2][m]+MI[i-2][j-1]-(DA[i][m-1]-DA[i][j-1]-DA[i-1][m-1]+DA[i-1][j-1])); } } } printf("%d\n",f[n][m]); return 0;}
- 领土划分
- 领土划分
- 领土——马未都
- 世界各国领土面积大排行
- 看看中国被占的领土
- [国际法]第五章 国家领土
- IBM 分裂中国国家领土
- 中国实际 领土及其纠纷
- 划分
- 划分
- 中国的领土 —— 钓鱼岛
- 领土局本副局长蒙贿获刑5年
- 中国现在实际控制的领土面积?
- Vert.x - Java 的新领土
- 中国必须收回的十块领土
- 领土这东西本来就是定居民族的概念,跟游牧民族讲“领土”纯粹是犯傻!
- [转]你们自由了,这里是西德领土
- 中国军队未能登上日本领土之谜(一)
- hdu1025
- cisco路由器密码恢复
- Mac上更新Ruby
- java回调函数
- jmeter 脚本增强(参数化)
- 领土划分
- 使用shiro框架,AuthorizationInfo方法没有被执行的问题
- 直播平台的高并发架构设计4-案例和总结
- Maven项目构建报错
- git 常用命令
- ubuntu14.04 pip从1.5.4 升级到8.x最新版
- iOS app性能优化的那些事(二)
- 黑马程序员_Java基础_我的day03学习笔记
- Java中的arraycopy