Subseq】的更多相关文章

原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.nowcoder.com/acm/contest/143/H 题意 给定一个序列 a[1..n],求下标字典序第 k 小的严格递增子序列 $1\leq n\leq 10^5, 0\leq k\leq 10^{18}$ 题解 树状数组. 我们首先考虑如何求出从每一个下标开始取序列,能得到多少个不同的严格递…
Portal --> broken qwq Description  给你一个长度为\(n\)的整数序列,要支持以下两个操作: \((0,i,x)\):将第\(i\)个数改成\(x\) \((1,l,r,k)\):求出\(k\)个区间,满足这些区间没有公共部分并且都在\([l,r]\)的范围内,求这些区间内的数的和的最大值(区间可以为空,空区间和为\(0\)) ​  数据范围: 对于40%的数据,\(n,m,k<=1000\) 对于100%的数据,\(n,m<=10^5,k<=20…
题意: 给出a数组的排列.求出字典序第k小的b数组的排列,满足1<=bi<=n,bi<bi+1,a[b[i]]<a[b[i+1]],m>0. 题解: 用树状数组倒着求出以每个数为首的递增子序列个数.若总的个数之和小于k则输出-1. 总的个数可能非常大而k<=1e18.所以要判下上界. 最后从1~n扫一遍.当前数大于上一个加入答案的数时,若以它为首的递增子序列个数小于k,则用k减去那个个数,否则将这个数加入答案并将k-1(即减去后面不再加数的情况). k = 0时跳出循环…
题目:戳这里 学习博客:戳这里 题意:给n个数为a1~an,找到字典序第k小的序列,输出该序列所有数所在位置. 解题思路:先把所有序列预处理出来,方法是设一个数组为dp,dp[i]表示以i为开头的序列共有多少个.这样当k>dp[i],则以i为开头的序列满足不了第k小,k-=dp[i],继续往后找,知道找到k<=dp[i],则把i记录在数组ans中,--k.--k的意思是去掉了我们所记录的ans这一条序列.此时若k==0,则说明已经找到答案,跳出循环输出即可,否则继续往下找,思路还算比较常规.…
Another interesting DP. Lesson learnt: how you define state is crucial.. 1. if DP[i] is defined as, longest wiggle(up\down) subseq AT number i, you will have O(n^2) solution class Solution { struct Rec { Rec(): mlen_dw(), mlen_up(){} Rec(int ldw, int…
cut -d " " -f 1 sequences.fa | tr -s "\n" "\t"| sed -s 's/>/\n/g' > sequences.tab while read id start end; do \ g=$(grep "$id" sequences.tab | cut -f 2 | cut -c $start-$end);\ echo ">$id";\ echo $…
这是AC自动机系列的第一篇 传送门 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)0 大意 给出N个仅由小写字母组成的字符串S[1]...S[N],它们的总长度为L.有Q组询问,询问分两类: 1.S[x]是否是S[y]的子序列: 2.S[x]是否是S[y]的子串. 数据范围: N,L,Q<=100000,有60%的数据满足 L<=100, Q<=1000 Solut…
1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几何 19 1.10 凸包 26 1.11 网格 28 1.12 圆 28 1.13 整数函数 30 2. 组合 33 2.1 组合公式 33 2.2 排列组合生成 33 2.3 生成gray码 35 2.4 置换(polya) 35 2.5 字典序全排列 36 2.6 字典序组合 36 3. 结构…
为了方便打印,不再将代码放到代码编辑器里,祝你好运. ACM-ICPC竞赛模板(1) 1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几何 19 1.10 凸包 26 1.11 网格 28 1.12 圆 28 1.13 整数函数 30 2. 组合 33 2.1 组合公式 33 2.2 排列组合生成 33 2.3 生成gray码 35 2.4 置换(…
http://community.topcoder.com/stat?c=problem_statement&pm=13147 此题关键在于发现ABAB的组合最多有26*26种,可以穷举,然后用判断子序列~ #include <vector> #include <iostream> using namespace std; class LongWordsDiv2 { public: string find(string word) { for (int i = 0; i &…