light oj 1071 dp(吃金币升级版)
#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 ;
}
light oj 1071 dp(吃金币升级版)的更多相关文章
- light oj 1231 dp 多重背包
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> ...
- Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖
标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...
- Light OJ 1316 A Wedding Party 最短路+状态压缩DP
题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...
- Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖
题目来源:Light OJ 1406 Assassin`s Creed 题意:有向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问题 ...
- 4829 [DP]数字三角形升级版
4829 [DP]数字三角形升级版 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 从数字三角形的顶部(如图, ...
- 【Unity3D】模仿制作“神庙逃亡”吃金币后金币飞出屏幕效果
[前言] 玩过“神庙逃亡”的应该都知道,这款游戏不论从游戏流畅度.人物动画.场景的管理都很棒. 自己也做了一款简单的跑酷游戏,实现了简单的吃金币效果,但是发现不好看,于是就想模仿“神庙逃亡”中的这个效 ...
- Light OJ 1114 Easily Readable 字典树
题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 ...
- Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖
题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走全然图 能够反复走 有向图 思路:假设是DAG图而且每一个点不能反复走 那么就是裸的最小路径覆盖 如 ...
- light oj 1007 Mathematically Hard (欧拉函数)
题目地址:light oj 1007 第一发欧拉函数. 欧拉函数重要性质: 设a为N的质因数.若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N ...
随机推荐
- 最大流——hdu4292(类似poj3281 带间隔的流)
#include<bits/stdc++.h> using namespace std; #define maxn 100005 #define inf 0x3f3f3f3f ]; int ...
- python封装email模块
一.代码 from email.mime.text import MIMEText from email.header import Header from email.utils import pa ...
- mongodb操作指令(一):数据库,集合,文档
数据库 查看所有数据库 show dbs 查看当前数据库 db 创建使用数据库use runoob 删除数据库 db.dropDatabase() 集合 创建集合db.createCollection ...
- vue-router 基本操作
安装 vue-router 在命令行中进入 vue 的项目目录里,运行命令 npm install vue-router --save 来进行安装 npm install vue-router - ...
- js基础应用-打字机,震动窗口
js基础应用一,窗口震动 html+js代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- 《Python之BMI计算》
<Python之BMI计算> 前段时间写了个 BMI 因为刚刚开始学 有几个错误 第一个: 厘米我当时也没注意因为觉得去掉0.00的话后面1866666666是正确的BMI值 刚刚去看看去 ...
- 面试系列17 redis cluster
1.redis cluster介绍 redis cluster (1)自动将数据进行分片,每个master上放一部分数据(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的 在re ...
- ajax长轮询 (转)
javaWeb项目中需要一个实时提醒的功能,也就是某人做了某一操作,可以立即提醒到当前在线的用户 最开始想在用户做了操作后,储存一个状态到数据库中然后用每隔几秒用ajax去请求后台查询数据库来确定是否 ...
- phonegap 拍照上传照片
js代码 可以完全从 phonegap 官网扣下来 使用的是2.3版本的phonegap<script type="text/javascript" src="c ...
- node web项目结构