hihocoder #1338 : A Game(区间dp)
时间:2019-12-18
本文章向大家介绍hihocoder #1338 : A Game(区间dp),主要包括hihocoder #1338 : A Game(区间dp)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
http://hihocoder.com/problemset/problem/1338
区间dp。
d[l][r]表示[l,r]区间先手取能得到的最大分数。
1 #define bug(x) cout<<#x<<" is "<<x<<endl 2 #define IO std::ios::sync_with_stdio(0) 3 #include <bits/stdc++.h> 4 #define iter ::iterator 5 #define pa pair<int,int> 6 #define pp pair<int,pa> 7 using namespace std; 8 #define ll long long 9 #define mk make_pair 10 #define pb push_back 11 #define se second 12 #define fi first 13 #define ls o<<1 14 #define rs o<<1|1 15 const ll mod=1e9+7; 16 const int N=1e3+10; 17 18 int a[N],b[N]; 19 int d[N][N]; 20 21 int n; 22 23 int dfs(int l,int r){ 24 if(l==r)return a[l]; 25 26 if(d[l][r])return d[l][r]; 27 28 int ans=-1e9; 29 30 ans=max(ans,b[r]-b[l-1]-dfs(l+1,r)); 31 ans=max(ans,b[r]-b[l-1]-dfs(l,r-1)); 32 return d[l][r]=ans; 33 } 34 int main(){ 35 36 scanf("%d",&n); 37 for(int i=1;i<=n;i++){ 38 scanf("%d",&a[i]); 39 b[i]=b[i-1]+a[i]; 40 } 41 printf("%d\n",dfs(1,n)); 42 43 }
或者d[i][j]表示以i为左端点,j为区间长度的区间先手取能得到的最大分数。
1 #define bug(x) cout<<#x<<" is "<<x<<endl 2 #define IO std::ios::sync_with_stdio(0) 3 #include <bits/stdc++.h> 4 #define iter ::iterator 5 #define pa pair<int,int> 6 #define pp pair<int,pa> 7 using namespace std; 8 #define ll long long 9 #define mk make_pair 10 #define pb push_back 11 #define se second 12 #define fi first 13 #define ls o<<1 14 #define rs o<<1|1 15 const ll mod=1e9+7; 16 const int N=1e3+10; 17 18 int n; 19 int a[N],b[N]; 20 int d[N][N]; 21 int main(){ 22 scanf("%d",&n); 23 for(int i=1;i<=n;i++){ 24 scanf("%d",&a[i]); 25 b[i]=b[i-1]+a[i]; 26 d[i][1]=a[i]; 27 } 28 for(int j=2;j<=n;j++){ 29 for(int i=1;i<=n;i++){ 30 d[i][j]=max(b[i+j-1]-b[i-1]-d[i][j-1],b[i+j-1]-b[i-1]-d[i+1][j-1]); 31 } 32 } 33 printf("%d\n",d[1][n]); 34 }
原文地址:https://www.cnblogs.com/ccsu-kid/p/12061719.html
- 分享WordPress Mobile Pack汉化精简版及隐藏指定插件更新提示的方法
- Tomcat重启脚本For Windows
- js获取url中?后的参数,修复移动版无法切换到电脑版的BUG
- nginx配置文件参数详解
- LVS中Windows作为真实主机(RealServer)时的设置方法
- 菜鸟教程:Ngnix安装详解
- 教你如何去掉友荐和无觅的隐藏外链和版权链接
- 重置多说配置后的问题,这是不让我从良的节奏啊(附禁用谷歌在线字体的方法)!
- 10个超有趣的Linux命令
- 张戈博客惊现WordPress恶意代码,各位WP博主要注意下了!
- 分享一个多说头像的动态酷炫CSS样式
- 在Linux中发现IP地址冲突的方法
- 教你如何查看Linux的CPU负载
- 想打造一个神经网络,自动给黑白照片上色?这儿有一份超详细教程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TypeScript高级类型备忘录(附示例)
- 浙大版《C语言程序设计(第3版)》题目集 练习4-10 找出最小值
- 牛逼!力挺一款实用的 Linux 资源监视工具
- 浙大版《C语言程序设计(第3版)》题目集 练习4-11 统计素数并求和
- 浙大版《C语言程序设计(第3版)》题目集 习题4-1 求奇数和
- Kotlin 使用DSL构建语法结构 看这一篇就够了~
- 浙大版《C语言程序设计(第3版)》题目集 习题4-2 求幂级数展开的部分和
- 2020 年 9 月编程语言排行榜
- 浙大版《C语言程序设计(第3版)》题目集 习题4-3 求分数序列前N项和
- 浙大版《C语言程序设计(第3版)》题目集 习题4-4 特殊a串数列求和
- 一个可能让你的页面渲染速度提升数倍的CSS属性
- 浙大版《C语言程序设计(第3版)》题目集 习题4-6 水仙花数
- 浙大版《C语言程序设计(第3版)》题目集 习题4-7 最大公约数和最小公倍数
- 高危漏洞!黑客可利用sudo获得 root权限
- 浙大版《C语言程序设计(第3版)》题目集 习题4-8 高空坠球