完美队形(区间dp)
来源:互联网 发布:csgo mac版 编辑:程序博客网 时间:2024/05/20 18:41
前言:感觉这是道神题,某神犇的代码只有300b+
这题最难点在于状态的定义
可以很清楚地知道这应该是大区间转小区间
或者说是在一个范围内转移状态
但这个范围有不能枚举
而这题的正解优越性在于使用线性的遍历保证了区间的范围,使状态可以轻松地转移
重点看for的顺序:
#include<cstdio>#define FOR(i,x,y) for(int i=(x);i<=(y);i++)#define DOR(i,x,y) for(int i=(x);i>=(y);i--)int A[505];int dp[505];//右半边最左边的人==右半边最高的人 int main(){ int n; scanf("%d",&n); FOR(i,1,n)scanf("%d",&A[i]); int ans=0; FOR(i,1,n){//枚举的i一定在dp[j]所对应的范围内 int mx=0; DOR(j,n,i){ if(A[i]>A[j]&&dp[j]>mx)mx=dp[j]; else if(A[i]==A[j]){ if(i!=j&&dp[j]<mx+2)dp[j]=mx+2; else if(i==j&&dp[j]<mx+1)dp[j]=mx+1; } } } FOR(i,1,n)if(ans<dp[i])ans=dp[i]; printf("%d\n",ans); return 0;}
阅读全文
1 0
- 完美队形(区间dp)
- HDU 4513 完美队形II (Manacher)
- hdu4512之完美队形
- codevs 1058 合唱队形(DP)
- 集训-变形合唱队形(DP)
- luogu1091【2004提高】合唱队形(dp)
- hdoj 吉哥系列故事——完美队形I 4512 (LICS&dp)单调增回文数列长度 好题
- hdu 4513 吉哥系列故事——完美队形II ( manacher+dp )
- 合唱队形 dp
- 合唱队形 【经典DP】
- [DP][NOIP2004] 合唱队形
- 【tju】【dp】调整队形
- 完美串 (DP)
- rqnoj 26 合唱队形(双向序列dp)
- 合唱队形(一维线性dp递推)
- 【NOIP2004】CODE[VS] 1058 合唱队形(序列型DP)
- hdu4597(区间dp)
- poj1651 (区间dp)
- java实现希尔排序
- Codeforces Round#412 C Success Rate
- Rxjava2-小白入门(二)
- 【JavaScript】DOM基础
- HttpClient在Android Studio中使用
- 完美队形(区间dp)
- UVa10870
- Codeforces Beta Round #86 (Div. 2 Only) E Double Happiness 素数筛法,费马平方和定理
- 数据结构之图
- //使用**异步**任务方式 HttpUrlConnection方式 要在清单列表设置连接网络权限
- ContentNegotiatingViewResolver解析器
- Android第一行代码-编写聊天界面-问题解决方案
- bzoj1969: [Ahoi2005]LANE 航线规划
- Visual Studio 常用版本的下载地址及安装教程——VS 2010/2013/2015