[luoguP1410] 子序列(DP)】的更多相关文章

最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42367    Accepted Submission(s): 19198 Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j…
[算法模版]子序列DP 如何求本质不同子序列个数? 朴素DP 复杂度为\(O(nq)\).其中\(q\)为字符集大小. \(dp[i]\)代表以第\(i\)个数结尾的本质不同子序列个数.注意,这里对于每一个字符,只计算上一个相同字符带来的贡献.如果全部计算的话会算重复. 最后统计答案的时候也只统计每个字符最后一次出现的位置的答案. 例题:[线上训练13]子序列 中的50分部分分 #include<iostream> #include<cstdio> #include<cstr…
传送门 发现一个结论. 只要存在长度>=3的非严格下降子序列就是NO,反之就是YES #include <cstdio> #include <iostream> #define N 2001 #define max(x, y) ((x) > (y) ? (x) : (y)) int n, tmp; int a[N], f[N]; inline int read() { int x = 0, f = 1; char ch = getchar(); for(; !isdig…
Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 154155    Accepted Submission(s): 35958 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max su…
题目:[NOIP1999]拦截导弹 问题编号:217 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 输入格式 输入数据为两行, 第一行为导弹的数目N(n<=1000) 第二行导弹依次飞来的高度,所有高度值均为不大于30000的正整数. 输出格式 输出只有一行是这套系…
Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 41944   Accepted: 18453 Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ...…
Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.最大连续子序列是所有连续子序列中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20. 在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还需要输出该 子序列的第一个和最后…
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 Palindrome Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4532    Accepted Submission(s): 1547 Problem Description A palindrome is a symmetri…
题目描述 有一个由前 \(m\) 个小写字母组成的串 \(S\),有 \(q\) 个询问,每次给你 \(l,r\),问你 \(S_{l\ldots r}\) 有多少个非空子序列. \(m=9,n=\lvert S\rvert \leq {10}^5,q\leq {10}^5\) 题解 题解接下来的部分求得答案是包含空串的答案. 最简单的做法是DP. 设 \(f_{i,j}\) 为前 \(i\) 个字符,末尾为 \(j\) 的子序列个数. 特殊的,如果 \(j=m+1\) 就说明当前还没有选任何字…
题意:最长上升子序列nlogn写法 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ]; ]; int main(){ int n; while(cin>>n){ ;i<n;i++){ cin>>a[i]; } memset(dp,,sizeof(dp)); dp[]=a[]; ; ;i&…