好久没有做题了,水平已经完全在学弟之下了。

一个吉林邀请赛最水的题目。:(

其实这题一看到数据范围,只可以想到思路,直接爆搜,加个记忆化。

这题虽然A了,但是我还是没太想清楚一些边界情况,心虚着A了。

我的代码如下:

 /*************************************************************************
> File Name: 4597.c
> Author: Stomach_ache
> Mail: 1179998621@qq.com
> Created Time: 2014年03月02日 星期日 13时04分27秒
> Propose:
************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h> #define max(x, y) ((x) > (y) ? (x) : (y))
#define min(x, y) ((x) < (y) ? (x) : (y)) int a[], b[], dp[][][][], n, t;
int sum_a[], sum_b[]; int
dfs(int f1, int e1, int f2, int e2) { if (dp[f1][e1][f2][e2] != -)
return dp[f1][e1][f2][e2];
if (f1 > e1 && f2 > e2)
return dp[f1][e1][f2][e2] = ; int res = , sum = ;
if (f1 <= e1) sum += sum_a[e1] - sum_a[f1-];
if (f2 <= e2) sum += sum_b[e2] - sum_b[f2-]; if (f1 <= e1) {
res = max(res, sum - dfs(f1+, e1, f2, e2));
res = max(res, sum - dfs(f1, e1-, f2, e2));
}
if (f2 <= e2) {
res = max(res, sum - dfs(f1, e1, f2+, e2));
res = max(res, sum - dfs(f1, e1, f2, e2-));
} return dp[f1][e1][f2][e2] = res;
} int
main(void) { scanf("%d", &t);
while ( t-- ) {
scanf("%d", &n);
int i;
sum_a[] = sum_b[] = ;
for (i = ; i <= n; i++) {
scanf("%d", a+i);
sum_a[i] = sum_a[i-]+a[i];
}
for (i = ; i <= n; i++) {
scanf("%d", b+i);
sum_b[i] = sum_b[i-]+b[i];
} memset(dp, -, sizeof(dp));
printf("%d\n", dfs(, n, , n));
} return ;
}

Hdu 4597记忆化搜索的更多相关文章

  1. HDU 4597 记忆化搜索

    ² 博弈取牌—记忆化搜索 题目描述: 有两副带有数字的牌,(数字>0)两人轮流取,取中了某张牌,自己的分数就加上牌上的数字,但只能从两端取,每人都会用最优的策略使得自己的分数最高.问A先取,他能 ...

  2. hdu 4722(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 思路:简单的记忆化搜索,留意一下A==0时的情况就可以了. #include<iostre ...

  3. hdu 1514 记忆化搜索

    题意是给4堆(堆的高度小于等于40)有颜色(颜色的种类小于等于20)的物品,你有一个篮子最多能装5件物品,每次从这4堆物品里面任取一件物品放进篮子里,但是取每堆物品时,必须先取上面的物品,才能取下面的 ...

  4. hdu 1208 记忆化搜索

    题目大意:只能按照格子上的数字*方向走,从左上走到右下Sample Input42331121312313110Sample Output3 直接记忆化搜索,注意是0的情况 #include<c ...

  5. hdu 4960 记忆化搜索 DP

    Another OCD Patient Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Ot ...

  6. hdu 2089 记忆化搜索写法(数位dp)

    /* 记忆化搜索,第二维判断是否是6 */ #include<stdio.h> #include<string.h> #define N 9 int dp[N][2],digi ...

  7. HDU 1978 记忆化搜索(dfs+dp)

    Y - How many ways Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. hdu 1078(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 //dp[i][j]表示从点i,j处开始能获得的最多cheese #include <io ...

  9. hdu 1978 记忆化搜索

    注意: dp[i][j] 表示(i,j)这个点有多少种方式       mark[i][j]表示这个点是否走过  假设有直接返回dp[i][j]    dp的求法为全部梦走到点的dp的和 注意mark ...

随机推荐

  1. C#墨攻IOC[转]

    原文叫看<墨攻>理解IOC概念 2006年多部贺岁大片以让人应接不暇的频率纷至沓来,其中张之亮的<墨攻>算是比较出彩的一部,讲述了战国时期墨家人革离帮助梁 国反抗赵国侵略的个人 ...

  2. Ionic 日期时间插件

    1.插件安装 日期插件 时间插件 备注: 具体 查看 https://github.com/rajeshwarpatlolla/ionic-datepicker    https://github.c ...

  3. LUOGU P1903 [国家集训队]数颜色 / 维护队列

    传送门 解题思路 带修莫队,第一次写,其实和普通莫队差不多,就是多了个时间轴,块分n^(2/3)最优,时间复杂度O(n^(5/3)). #include<iostream> #includ ...

  4. leyou_07_对数据的操作

    1.目标在数据库的两张表中拿到以下数据,并完成状态.搜索和分页功能 实体类Spu(页面需要的数据) 实体类Category(页面需要的数据) name:商品分类 2.分析: 返回的数据在两个实体类中, ...

  5. js身份证号码验证(小程序版)

    参考知乎专栏文章https://zhuanlan.zhihu.com/p/22949023 <view class='bgw'> <form> ...... <view ...

  6. PAT甲级——A1026 Table Tennis

    A table tennis club has N tables available to the public. The tables are numbered from 1 to N. For a ...

  7. [Day1] 初识Nginx

    一. Nginx的诞生 Nginx是一个高效的web及反向代理服务器,它的第一版发布于2012年,晚于如今占据最大市场份额的Apache.那么Nginx的诞生肩负了哪些使命呢?或者说它于Apache的 ...

  8. 解决导入TensorFlow后出现警告的的问题解决:通过降低numpy的版本

    在原有基础上安装tensorflow 重新虚拟出一个环境安装tensorflow 安装 测试 大多教程都是重新虚拟出一个环境,原有环境就可以支持为什么还要重建一个新的环境,如果以后遇到坑了更新解释. ...

  9. TZ_03_mybatis的注解开发

    1.一对多的注解开发 1>需求通过查询所有的用户,并且找到该用户的所有账户(使用延迟加载模式) @Select("select * from user") //sql语句查询 ...

  10. java并发系列(二)-----线程之间的协作(wait、notify、join、CountDownLatch、CyclicBarrier)

    在java中,线程之间的切换是由操作系统说了算的,操作系统会给每个线程分配一个时间片,在时间片到期之后,线程让出cpu资源,由其他线程一起抢夺,那么如果开发想自己去在一定程度上(因为没办法100%控制 ...