D. Yet Another Yet Another Task 题意 给出一个长度为$n$的整数数组,让找出一个连续子序列,它的和减去最大值是最大的。 思路 我写的代码有点多了。。。 ST表+单调队列。 因为是减去最大值,所以我们可以枚举每个数字作为最大值。 左边第一个大于它的数字到右边第一个大于它 ...
分类:
其他好文 时间:
2020-05-29 23:07:00
阅读次数:
131
题目 有一棵以$1$为根的树,第$i$个节点的权值是$a_i$,\(a_1=L\) 求从根往叶子有多少个子序列为${L,L-1,..,1}$。 支持$m$次修改,第$i$次将$a_{(i-1)\mod n+1}$修改成$v_i$ \(n\leq 1e6,m\leq 2e6,fa_i<i\) 思考历程 ...
分类:
其他好文 时间:
2020-05-29 23:05:42
阅读次数:
80
题目链接:https://codeforces.com/contest/1359/problem/D 题解 枚举所有可能的情况,其中一定有一个是正确答案。 即每次枚举去掉的最大值,取最大连续子序列的和。 代码 #include <bits/stdc++.h> using namespace std; ...
分类:
其他好文 时间:
2020-05-29 19:31:35
阅读次数:
164
题目大意: 给出一个序列,然后求这个序列的最大上升子序列的和。 题解:定义状态dp[i]表示前i个数的最大和,dp[i]的最小值应该是arr[i]了,因为i前边可能有负数,对于负数,虽然可以构成上升子序列,但是没有必要选。 code: #include<bits/stdc++.h> using na ...
分类:
其他好文 时间:
2020-05-25 19:25:25
阅读次数:
75
E2 String Coloring (hard version) + 题目链接: "https://codeforces.com/problemset/problem/1296/E2" 涉及知识点: + 上升子序列/思维 solution: 首先,假如当前这个数和前面的数不同的话,那么我们可以将这 ...
分类:
其他好文 时间:
2020-05-25 13:58:44
阅读次数:
59
最长公共子序列(Longest-Common-Subsequences,LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。最长公共子串(Longest-Common-Substring,LCS)问题是寻找两个或多个已知字符串最长的子串。此问题与最长公共子序列问题的区 ...
分类:
其他好文 时间:
2020-05-24 12:11:48
阅读次数:
59
线性DP 1. 最长上升(不下降)子序列 O(n^2)的基础算法,如果是不下降只用把`f[i] include include include include using namespace std; int n,a[5005],f[5005]; int main() { ios::sync_wit ...
分类:
其他好文 时间:
2020-05-24 11:51:22
阅读次数:
41
线性DP 最长上升子序列 O(n^2)的基础算法 方程:f[i]=max(f[j]+1) j∈i+1~n ps:每个位置的初始长度都是1!!!! //最长上升序列 #include <iostream> #include <cstring> #include <cstdio> #include <c ...
分类:
其他好文 时间:
2020-05-24 00:43:07
阅读次数:
40
题意: 给你一个序列,如果有一个数满足序列里的一段子序列的和等于这个数,那么就称这个数为特殊数。 请你计算有多少个特殊数。 题解: 观察数据范围,我们可以构造一个桶记录每个数的出现次数,再枚举所有前缀和统计,用完这个桶就把它清空,时间复杂度O(n^2)。一开始写的map做法也是这个复杂度不知道为什么 ...
分类:
编程语言 时间:
2020-05-23 20:33:20
阅读次数:
64
题意: 给出一个序列,每次操作可以选择一段子序列,使得里面的最小的比中位数大的值为t,子序列所有的值都变成这个t。(子序列长度len,中位数(len+1)/2)。 现在给出一个数k,询问能否通过操作把整个序列变成k。 题解: 找规律可以发现,我们需要序列里有一个数是k,同时需要存在两个大于等于k的数 ...
分类:
其他好文 时间:
2020-05-23 16:49:31
阅读次数:
55