hdu4597Play Game(记忆化)
通化邀请赛的题 貌似不怎么难
记忆化DP 状态方程类似于2维的 只是变成了4维 每次有四种方向去搜 取最棒的
判断好边界条件
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
int p1[],p2[],sum1[],sum2[];
int dp[][][][];
int dfs(int i1,int j1,int i2,int j2)
{
if(dp[i1][j1][i2][j2]!=-)
return dp[i1][j1][i2][j2];
if(i1>j1&&i2>j2)
return dp[i1][j1][i2][j2] = ;
int d1=,d2=,d3=,d4=;
int s1 = sum1[j1]-sum1[i1-];
int s2 = sum2[j2]-sum2[i2-];
if(i1<=j1)
{
d1 = s2+sum1[j1-]-sum1[i1-]-dfs(i1,j1-,i2,j2)+p1[j1];
d2 = s2+sum1[j1]-sum1[i1]-dfs(i1+,j1,i2,j2)+p1[i1];
}
if(i2<=j2)
{
d3 = s1+sum2[j2-]-sum2[i2-]-dfs(i1,j1,i2,j2-)+p2[j2];
d4 = s1+sum2[j2]-sum2[i2]-dfs(i1,j1,i2+,j2)+p2[i2];
}
dp[i1][j1][i2][j2] = max(max(d1,d2),max(d3,d4));
return dp[i1][j1][i2][j2];
}
int main()
{
int i,n,t;
scanf("%d",&t);
while(t--)
{
cin>>n;
memset(sum1,,sizeof(sum1));
memset(sum2,,sizeof(sum2));
memset(dp,-,sizeof(dp));
for(i = ; i <= n ;i++)
{
scanf("%d",&p1[i]);
sum1[i] = sum1[i-]+p1[i];
}
for(i = ; i<= n ; i++)
{
scanf("%d",&p2[i]);
sum2[i] = sum2[i-]+p2[i];
}
int ans = dfs(,n,,n);
cout<<ans<<endl;
}
return ;
}
hdu4597Play Game(记忆化)的更多相关文章
- *HDU1142 最短路+记忆化dfs
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- 【BZOJ-3895】取石子 记忆化搜索 + 博弈
3895: 取石子 Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 263 Solved: 127[Submit][Status][Discuss] D ...
- hdu3555 Bomb (记忆化搜索 数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory ...
- Codeforces Round #174 (Div. 1) B. Cow Program(dp + 记忆化)
题目链接:http://codeforces.com/contest/283/problem/B 思路: dp[now][flag]表示现在在位置now,flag表示是接下来要做的步骤,然后根据题意记 ...
- hdu 4826(dp + 记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4826 思路:dp[x][y][d]表示从方向到达点(x,y)所能得到的最大值,然后就是记忆化了. #i ...
- zoj 3644(dp + 记忆化搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...
- loj 1044(dp+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...
- DP(记忆化搜索) + AC自动机 LA 4126 Password Suspects
题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 ...
随机推荐
- 常用Linux/Unix/Mac Os命令
常用Linux/Unix/Mac OS命令 参考: 1.50 Most Frequently Used UNIX / Linux Commands (With Examples)
- [Guava官方文档翻译] 2.使用和避免使用null (Using And Avoiding Null Explained)
本文地址:http://www.cnblogs.com/hamhog/p/3536647.html "null很恶心." -Doug Lea "这是一个令我追悔莫及的错误 ...
- 【nodemailer】 初试
nodemailer 是什么? 简单的讲nodemailer就是用来发送邮件的.最近的一个项目需要向客户的注册邮箱发送验证连接,研究了一下. 刚开始我以为nodemailer还可以用来接收邮件,看了好 ...
- svn 提交 commit慢
又修改了一下,上一个方法有问题 #!/bin/bash ###ubuntu下注意要用bash哦,不然for循环总提示'bad loop....' export LC_CTYPE=en_US.UT ...
- linux 终端快捷键
1. 移动光标快捷键 ctrl+f 向前移动一个字符 ctrl+b 向后移动一个字符 alt+f 向前移动一个单词 alt+b 向后移动一个单词 ctrl+a 移动到当前行首 ctrl+e 移动到当前 ...
- jquery ajax php 无刷新上传文件 带 遮罩 进度条 效果的哟
在很多项目中都会叫用户上传东西这些的,自从接触了jquery 和ajax之后就不管做什么,首先都会想到这个,我这个人呢?是比较重视客户体验的,这次我这边负责的是后台板块,然后就有一块是要求用户上传照片 ...
- C#基础(七)——静态类与非静态类、静态成员的区别
静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例 ...
- 谈谈我对OAuth的理解
自己的理解是,OAuth是一种授权标准. 用于为除了用户之外的第三方应用授权, 并且在授权过程中,第三方应用不会接触到用户的任何信息, 授权完成后,第三方应用可访问用户授权范围内的信息. ...
- Activity组件
Activity 间书作者:阿敏其人 关于Activity博文上 间书作者:阿敏其人 关于Activity博文中 间书作者:阿敏其人 关于Activity博文下
- j2ee中如何拦截jsp页面?
加filter: public class RightFilter implements Filter { public void init(FilterConfig filterConfig) th ...