light oj 1071 dp(吃金币升级版)
2024-09-06 11:02:55
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <queue>
#define ll long long using namespace std;
const int N = 1e5+; int dp[*][][];
int maze[][]; int dfs(int sum,int a,int b)
{
if(dp[sum][a][b] != -)
return dp[sum][a][b];
if(sum == && a == && b == )
return dp[sum][a][b] = maze[][];
dp[sum][a][b] = ;
if(a == b)
{
if(sum - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a,b) + maze[a][sum-a]);
if(sum - >= && a - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a-,b)+ maze[a][sum-a]);
if(sum - >= && b - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a,b-) + maze[a][sum-a]);
if(sum - >= && a - >= && b - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a-,b-) + maze[a][sum-a]);
}
else
{
if(sum - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a,b) + maze[a][sum-a]+maze[b][sum-b]);
if(sum - >= && a - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a-,b)+ maze[a][sum-a]+maze[b][sum-b]);
if(sum - >= && b - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a,b-) + maze[a][sum-a]+maze[b][sum-b]);
if(sum - >= && a - >= && b - >= )
dp[sum][a][b] = max(dp[sum][a][b],dfs(sum-,a-,b-) + maze[a][sum-a]+maze[b][sum-b]);
}
return dp[sum][a][b];
} void solve()
{
int m,n;
scanf("%d %d",&m,&n);
memset(dp,-,sizeof(dp));
memset(maze,,sizeof(maze));
for(int i = ; i < m; i++)
for(int j = ; j < n; j++)
scanf("%d",&maze[i][j]); int ans = dfs(n+m-,m-,m-); printf("%d\n",ans);
} int main(void)
{
int t,cnt = ;
scanf("%d",&t); while(t--)
{
printf("Case %d: ",++cnt);
solve();
}
return ;
}
最新文章
- python-copy模块使用
- How to install Shadow•socks in CentOS7
- 取到 tableview 自定义section header 上的button
- 【jq】c#零基础学习之路(4)抽象类和密封
- 解决HTML5布局,兼容IE问题
- C#跟踪和调试程序-Debug类使用
- leetcode Largest Rectangle in Histogram 解法二
- c语言实用功能库函数#include<;stdlib.h>;
- LinkedHashMap:我还能实现LRU
- 2008-2009 ACM-ICPC, NEERC, Southern Subregional ContestF
- 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程
- MYSQL IN 出现的慢查询问题
- 【bzoj4031】[HEOI2015]小Z的房间
- centos7 安装gitlab任意版本
- Django的Rbac介绍3
- Linux日志文件总管——logrotate
- Linux下防御ddos攻击
- 由于防火墙限制无法访问linux服务器上的tomcat应用
- js判断第二个日期比第一个日期大
- JAVA中return的用法