Consecutive Subsequence CodeForces - 977F

题目大意:输出一序列中的最大的连续数列的长度和与其对应的下标(连续是指 7 8 9这样的数列)

解题思路:

状态:把dp[i]定义为数列末尾为 i 的最大连续数列的长度值

状态转移方程:dp[i] = dp[i-1] + 1

再由最大连续数列最后一个值从后往前倒推出前面的所有值,到不是连续时停止

代码:

#include<bits/stdc++.h>
using namespace std;
const int N = + ;
int dp[N];
int a[N];
int res[N];
int main() {
int n;
scanf("%d", &n);
int e, v;
int ans = ;
for(int i = ; i < n; i++) {
scanf("%d", &v);
a[i] = v;
dp[v] = dp[v-] + ;
if(ans < dp[v]) {
ans = dp[v];
e = i;
}
}
printf("%d\n", ans);
int tot = ;
int flag = a[e];
for(int i = e; i >= ; i--) {
if(a[i] == flag) {
res[tot++] = i + ;
flag--;
}
if(tot == ans) break;
}
for(int i = tot - ; i > ; i--) {
printf("%d ", res[i]);
}
printf("%d\n", res[]);
return ;
}

Consecutive Subsequence CodeForces - 977F(dp)的更多相关文章

  1. Consecutive Subsequence CodeForces - 977F (map优化DP)·

    You are given an integer array of length nn. You have to choose some subsequence of this array of ma ...

  2. Codeforces 977F - Consecutive Subsequence - [map优化DP]

    题目链接:http://codeforces.com/problemset/problem/977/F 题意: 给定一个长度为 $n$ 的整数序列 $a[1 \sim n]$,要求你找到一个它最长的一 ...

  3. Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (简单dp)

    题目:https://codeforces.com/problemset/problem/977/F 题意:一个序列,求最长单调递增子序列,但是有一个要求是中间差值都是1 思路:dp,O(n)复杂度, ...

  4. New Year and Old Subsequence CodeForces - 750E (dp矩阵优化)

    大意: 给定字符串, 每次询问区间[l,r]有子序列2017, 无子序列2016所需要删除的最小字符数 转移用矩阵优化一下, 要注意$(\mathbb{Z},min,+)$的幺元主对角线全0, 其余全 ...

  5. D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)

    D - Yet Another Problem On a Subsequence CodeForces - 1000D The sequence of integers a1,a2,-,aka1,a2 ...

  6. codeforce 977 F. Consecutive Subsequence

    F. Consecutive Subsequence time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  7. Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (DP)

    题意:给你一个长度为\(n\)的序列,求一个最长的\({x,x+1,x+2,.....,x+k-1}\)的序列,输出它的长度以及每个数在原序列的位置. 题解:因为这题有个限定条件,最长序列是公差为\( ...

  8. 【Codeforces 977F】Consecutive Subsequence

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 设f[i]表示i作为序列的最后一个数字,最长的连续序列的长度. 用f[i]和f[i-1]+1来转移即可 [代码] import java.io ...

  9. Codeforces 750E New Year and Old Subsequence 线段树 + dp (看题解)

    New Year and Old Subsequence 第一感觉是离线之后分治求dp, 但是感觉如果要把左边的dp值和右边的dp值合起来, 感觉很麻烦而且时间复杂度不怎么对.. 然后就gun取看题解 ...

随机推荐

  1. 1.1 vue.js devtools使用教程

    1. vue.js devtools使用教程

  2. win10常用命令和设置总结

    1.常用命令 exit:退出cmd面板; cls:清除cmd面板; 2.常用设置 2.1 services.msc 禁用:以后怎样都不会运行;手动:是打开某些用到它的程序要用到该服务时才会运行; 自动 ...

  3. 修改linux镜像

    修改镜像的常用命令有: guestfish,guestmount等. ●修改静态文件. 命令:guestfish 安装包:yum install -y guestfish ①mount镜像:guest ...

  4. MYSQL常用函数(控制流函数)

    MySQL有4个函数是用来进行条件操作的,这些函数可以实现SQL的条件逻辑,允许开发者将一些应用程序业务逻辑转换到数据库后台. MySQL控制流函数: CASE WHEN[test1] THEN [r ...

  5. 验证码之SimpleCaptcha (一)

    在captcha中,两个比较著名的框架验证码有Jcaptcha和simpleCaptcha,Jcaptcha太庞大了,所以我选择了简单的SimpleCaptcha       simpleCaptch ...

  6. tchart example

    Random random = new Random(); // Color SeriesColor; int SeriesIndex=0; tChart1.Series.Clear(); Steem ...

  7. 1 虚拟环境virtualenv

    一.windows下虚拟环境创建 1.1 虚拟环境virtualenv 如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新 ...

  8. Python 2.7.x 使用Requests发起https请求时报Warning的问题

    warning :如下 /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py:852: ...

  9. C++笔试题总结

    1.C和C++的特点与区别? 答:(1)C语言特点:1.作为一种面向过程的结构化语言,易于调试和维护: 2.表现能力和处理能力极强,可以直接访问内存的物理地址: 3.C语言实现了对硬件的编程操作,也适 ...

  10. ZCRM_DAY_IN_WEEK

    FUNCTION zcrm_day_in_week. *"------------------------------------------------------------------ ...