Loi Online Judge 47. 「Loi test 2017.5.31」换数游戏
来源:互联网 发布:毛竹苗价格表一淘宝网 编辑:程序博客网 时间:2024/06/05 12:48
题目描述
咸鱼 wyz 最近沉迷于一款游戏,叫做换数游戏。
游戏开始时,有 n 个 1 到 40 之间的整数排成一排。wyz 每次可以将两个相邻的相等的正整数替换成一个比原数大一的正整数(需要注意的是,合并后的数可以大于 40)。
wyz 可以在任意时刻结束游戏。结束时 wyz 的得分为所有剩余的数中最大的数。
现在给定一个初始局面,你想知道 wyz 能获得的最高得分。
输入格式
第一行一个正整数 n。
第 2 行到第 n+1 行每行一个正整数,描述第 i个数 a[i]。
输出格式
一行一个整数表示 wyz 能够获得的最高得分。
样例一
input
4
1
1
1
2
output
3
限制与约定
对于 6.25%的数据,保证 n≤5
对于 12.5%的数据,保证 n≤20
对于 43.75%的数据,保证 n≤1024
对于 100%的数据,保证 n≤262144
数据保证 1≤a[i]1≤a[i]
时间限制:1s
空间限制:128MB
题解:
一:关于答案范围的证明
二:dp
dp[i][k] 意义为: 从i开始能够凑出k这个数,dp数组存能够凑出k的最小区间的下一位坐标,若凑不出k,dp=0;
例如 数列 1 1 1 2 dp[1][2]=3 即用前两个1凑一个2
dp[2][3]=5 dp[1][8]=0;
更新:
1。第i位数字是k 那么dp[i][k]=i+1;
2
if(dp[i][k-1]&&dp[dp[i][k-1]][k-1]){ dp[i][k]=dp[dp[i][k-1]][k-1]; maxx=max(maxx,k); }
从i位开始能够凑出k-1,从dp[i][k-1]开始又能凑出k-1,那么从第i位开始就能凑出一个k
//二维#include<iostream>#include<cstdio>using namespace std;const int maxn=300000;int dp[65][maxn],num[maxn],n,maxx;inline int read(){ int ret=0;char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while ('0'<=ch&&ch<='9'){ ret=ret*10-48+ch; ch=getchar(); } return ret;}int main(){ n=read(); for (int i=1;i<=n;++i) num[i]=read(); for(int k=1;k<=60;k++) for(int i=1;i<=n;i++){ if(num[i]==k) { maxx=k; dp[k][i]=i+1; } else if(dp[k-1][i]&&dp[k-1][dp[k-1][i]]){ dp[k][i]=dp[k-1][dp[k-1][i]];maxx=k; } else{ dp[k][i]=0; } } printf("%d",maxx); return 0;}
//直接砍一维#include<iostream>#include<cstdio>using namespace std;const int maxn=300000;int dp[maxn],num[maxn],n,maxx;inline int read(){ int ret=0;char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while ('0'<=ch&&ch<='9'){ ret=ret*10-48+ch; ch=getchar(); } return ret;}int main(){ n=read(); for (int i=1;i<=n;++i) num[i]=read(); for(int k=1;k<=60;k++) for(int i=1;i<=n;i++){ if(num[i]==k) { maxx=k; dp[i]=i+1; } else if(dp[i]&&dp[dp[i]]){ dp[i]=dp[dp[i]];maxx=k; } else{ dp[i]=0; } } printf("%d",maxx); return 0;}
阅读全文
0 0
- Loi Online Judge 47. 「Loi test 2017.5.31」换数游戏
- Loi Online Judge【NOIP2016】组合数问题
- Loi Online Judge 42. 「Loi57 test 2017.4.22」字符串
- Loi Online Judge 1004 文明膜蛤
- LOI Online Judge 33. 【2017.4.1】面包店
- Loi test 2015.5.24
- Loi 2015.8.27 TEST 坑题互测
- LOI Online Judge32. 【2017.4.1】派
- 2015.5.16 loi test 考后总结
- Loi test 单词总数以及最长长度
- LOI队内题单qwq
- Loi 模拟试题1
- Loi队内胡策 round 1 - 5
- 【胡策 9.16】Loi 队内胡策 Day1
- 【zqsz&&loi 互测 11.6】 T1
- LOI 日常计划(欢迎监督)
- Loi 模拟赛 贪心+模拟+DP+数论
- Loi模拟题之Loi水题汇总 MST+DP+DP+树剖
- python爬虫(豆瓣影评requests版并下载电影封面图片)
- 排序问题的总结
- HDOJ 1151 Air Raid
- PAT 1030 Travel Plan dijkstra算法+双最短条件+保存最短路
- visual studio安装本地帮助文档
- Loi Online Judge 47. 「Loi test 2017.5.31」换数游戏
- 用TensorFlow的Softmax Regression进行手写数字识别
- Menu
- 2017年上海金马五校程序设计竞赛:Problem K : Treasure Map
- 配置Chrome支持本地(file协议)的AJAX请求
- OpenFOAM4.0安装教程
- Linux进程间通信之消息队列
- json应用场景与实战
- eclipse引入maven工程的正确姿势