A game——hihoCoder173
来源:互联网 发布:嘉年华st轮毂数据 编辑:程序博客网 时间:2024/06/06 02:11
这个题目是今年360春招的题目,这是链接
用的是动态规划,先上代码:
int n;int a[1010], dp[1010][1010];int main(){ cin>>n; for(int i = 0; i<n; i++){ cin>>a[i]; } if(n&1){ for(int i = 0; i<n; i++) dp[i][i] = a[i]; } for(int i = 1; i<n; i++){ for(int j = 0; j+i<n; j++){ if(((n+i)&1) == 0){ dp[j][j+i] = min(dp[j+1][j+i], dp[j][j+i-1]); }else{ dp[j][j+i] = max(dp[j+1][j+i] + a[j], dp[j][j+i-1] + a[j+i]); } } } cout<<dp[0][n-1]; return 0;}
在链接里的解释说明的很清楚了,这里添加以下解释:
1、dp[ i ][ j ]指的是在区间 i-j 范围内A能取到的最大值
2、第一个(n&1),即判断n的奇偶性。(dp[i][i]是初值,即为区间为1)当n是奇数时,说明A会拿到最后一个元素,故在此区间内(区间长度为1时)A能取到的最大值即为该元素的值,于是需要赋值给dp的初值;而当n为偶数时,A拿不到最后一个元素,故在此区间(区间长度为1)A能取到的最大值为0,故dp的初值为0(不赋初值)
3、(n+I)&1意为该B取值,反之则为轮到A取值
阅读全文
0 0
- A game——hihoCoder173
- JAVA编程训练——Game: playing a TicTacToe game
- cf——A. The Great Game
- 北大ACM2484——A Funny Game
- hdu 3094——A tree game
- 博弈——Play a game
- hdu1564—Play a game(博弈论)
- codeforces——119A——Epic Game
- codeforces——327A——Flipping Game
- codeforces——703A——Mishka and Game
- Python——【USACO 3.3.5】——A Game
- 【细节】HDU 3744——A Running Game
- ACM-博弈之Play a game——hdu1564
- hdu1564——Play a game(找规律博弈)
- hdu3094—A tree game-(树形博弈)
- Construct2—How to make a Platform game
- A Game
- A Game
- Ubuntu下caffe+CUDA8.0+OpenCv3.3+Python2.7环境配置
- mq 集群,基于zookeeper
- Java并发编程:ConcurrentHashMap原理分析(1.7与1.8)
- 游戏 BZOJ
- python---统计特定时间发布数量(列表、range、for、元组、字典)
- A game——hihoCoder173
- 自加运算
- HTTP POST GET详解
- c++中引用与指针的区别
- 使用Navicat导入或导出MySQL数据库
- 深度学习概述<二>追本溯源:深度学习基础
- 1. AngularJS+路由+JQuery:模糊查询过滤内容,下拉菜单排序,过滤敏感字符,验证判断后添加表格信息(路由显示添加页面)
- iOS计算字符串的宽高
- Ubuntu14.04如何备份和恢复系统