Codeforces Round #FF (Div. 2)C. DZY Loves Sequences
2014-08-07 13:46
344 查看
从两个方向进行预处理,然后枚举出最大值(改子序列中的一个 或者不改两种情况)。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <math.h>
#include <map>
#include <algorithm>
using namespace std;
const int maxn = 100005;
int dp1[maxn],dp2[maxn],num[maxn];
int main(){
int n;
while(~scanf("%d",&n)){
for(int i = 1;i <= n;i++)
scanf("%d",num+i);
memset(dp1, 0, sizeof(dp1));
memset(dp2, 0, sizeof(dp2));
for(int i = 1;i <= n;i++){//以i结尾的最长连续递增子序列
if(num[i] > num[i-1])
dp1[i] = dp1[i-1]+1;
else
dp1[i] = 1;
}
for(int i = n;i >= 1;i--){//以i开头的最长连续递增子序列
if(num[i] < num[i+1])
dp2[i] = dp2[i+1]+1;
else
dp2[i] = 1;
}
/*for(int i = 1;i <= n;i++)
printf("%d ",dp1[i]);
printf("\n");
for(int i = 1;i <= n;i++)
printf("%d ",dp2[i]);*/
int ans_max = 0;
for(int i = 1;i <= n;i++){//枚举
if(num[i+1] - num[i-1] >= 2){
int temp = dp1[i-1] + dp2[i+1] + 1;
ans_max = max(ans_max,temp);
}
ans_max = max(ans_max,max(dp1[i-1],dp2[i+1])+1);
}
printf("%d\n",ans_max);
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <math.h>
#include <map>
#include <algorithm>
using namespace std;
const int maxn = 100005;
int dp1[maxn],dp2[maxn],num[maxn];
int main(){
int n;
while(~scanf("%d",&n)){
for(int i = 1;i <= n;i++)
scanf("%d",num+i);
memset(dp1, 0, sizeof(dp1));
memset(dp2, 0, sizeof(dp2));
for(int i = 1;i <= n;i++){//以i结尾的最长连续递增子序列
if(num[i] > num[i-1])
dp1[i] = dp1[i-1]+1;
else
dp1[i] = 1;
}
for(int i = n;i >= 1;i--){//以i开头的最长连续递增子序列
if(num[i] < num[i+1])
dp2[i] = dp2[i+1]+1;
else
dp2[i] = 1;
}
/*for(int i = 1;i <= n;i++)
printf("%d ",dp1[i]);
printf("\n");
for(int i = 1;i <= n;i++)
printf("%d ",dp2[i]);*/
int ans_max = 0;
for(int i = 1;i <= n;i++){//枚举
if(num[i+1] - num[i-1] >= 2){
int temp = dp1[i-1] + dp2[i+1] + 1;
ans_max = max(ans_max,temp);
}
ans_max = max(ans_max,max(dp1[i-1],dp2[i+1])+1);
}
printf("%d\n",ans_max);
}
return 0;
}
相关文章推荐
- Codeforces Round #FF (Div. 2) C DZY Loves Sequences
- Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
- Codeforces Round #FF (Div. 1)——A贪心——DZY Loves Sequences
- Codeforces Round #FF (Div. 1) A. DZY Loves Sequences 动态规划
- Codeforces Round #FF (Div. 二):C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2) C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2) C - DZY Loves Sequences (DP)
- Codeforces Round #FF (Div. 2):C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2)446A - DZY Loves Sequences(最长上升子序列变形)
- Codeforces Round #FF (Div. 2)C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2) C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2) Problem C DZY Loves Sequences
- DP Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
- Codeforces Round #FF (Div. 2)C - DZY Loves Sequences
- Codeforces Round #FF (Div. 2) C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2) C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2)-C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2):C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2)C. DZY Loves Sequences
- Codeforces Round #FF (Div. 2)-C. DZY Loves Sequences