subsequence addition
Largest Subsequence
操作:选取词性最大的子序列,向右循环一次 问你进行多少次这样的操作能使数组有序,如果不能就输出-1 思路:首先要知道的是一个词性最大的序列整个右移过后,数组的新词性最大的序列就是之前的词性最大序列去了最后一个字母. 找出词性最大的子序列 int n; string s; cin>>n>>s; for ......
[ARC150F] Constant Sum Subsequence
更好的阅读体验 [ARC150F] Constant Sum Subsequence 很有意思的题。 设 \(nex_{i,j}\) 表示位置 \(i\) 后面的最小的满足 \(k>i\wedge a_k=j\) 的 \(k\),则问题可以抽象为: \[f_i=\max_{j=1}^inex_{f_ ......
[ABC271E] Subsequence Path 题解
[ABC271E] Subsequence Path 题解 思路解析 很好的一道题,很有迷惑性,表面上是一道图论实际上是 dp,定义 \(f_{i}\) 为从 \(1\) 到 \(i\) 的最短 “好路”。先把每条边对应的起点,终点和边权记录下来,然后输入每个 \(e\),由于是子序列顺序不会改变, ......
CF1621G Weighted Increasing Subsequences
CF1621G Weighted Increasing Subsequences 你有一个长度为 \(n\) 的序列,定义 \(a\) 的一个长度为 \(k\) 的子序列为 \(a_{i_1},a_{i_2},\dots,a_{i_k}\)。由此,我们不难发现,\(a\) 的一个长度为 \(k\) ......
[Codeforces] CF1817A Almost Increasing Subsequence
CF1817A Almost Increasing Subsequence 题意 给定长度为 \(n\) 一个序列 \(a\) 以及 \(q\) 次询问,每次询问给出 \(l\) 和 \(r\),找出序列 \(a\) 在 \([l,r]\) 内最长的几乎递增子序列。 对于几乎递增的定义:如果一个序列 ......
[ARC133B] Dividing Subsequence
Dividing Subsequence 这道题与最长公共子序列类似,可以先去水一水那道题。 题意 本题就是让你从 \(p\) 里面选出一个子序列 \(b_i\) 和 \(q\) 里面选出一个子序列 \(a_i\),我们要使 \(b_i\) 是 \(a_i\) 的倍数。 解法 本题直接用动态规划,是 ......
[CF83E] Two Subsequences 题解
[CF83E] Two Subsequences 题解 思路 定义 \(overlap(a, b)\) 为字符串 \(a\) 的后缀与 \(b\) 的前缀的最大相等的长度,有 \(|f(a, b)| = |a| + |b| - overlap(a, b)\),下文称匹配为相邻两串的 \(overla ......
D2. Xor-Subsequence (hard version)
D2. Xor-Subsequence (hard version) It is the hard version of the problem. The only difference is that in this version $a_i \le 10^9$. You are given an ......
D1. Xor-Subsequence (easy version)
D1. Xor-Subsequence (easy version) It is the easy version of the problem. The only difference is that in this version $a_i \le 200$. You are given an ......
【题解】CF1621G Weighted Increasing Subsequences
常规,但不常规。 思路来自 @gyh. 思路 BIT 优化计数。 本来考虑的是对 LIS 进行计数,得到一个对 \([]\) 形式的值套三层求和的方式,然后再瞪眼找优化方法,但是没有发现什么好的处理方法,于是只能考虑转换计数方法。 考虑通过每个位置对答案的贡献计数。假设某个位置 \(x\) 被一个合 ......
关于 SAP BMBC 批次查询结果 BADI - BIC_ADDITIONAL_DATA 的案例
在 SAP 中,BADI(Business Add-In)是一种用户扩展点,可以使用它来插入我们自己的业务逻辑,而不会影响到标准的应用程序。在 ABAP 中,我们经常需要使用 BADI 来满足特定的业务需求。在本文中,我们将介绍一个关于 BMBC 批次查询结果 BADI - BIC_ADDITION ......
[USACO22OPEN] Up Down Subsequence P
[USACO22OPEN] Up Down Subsequence P 注意到这个问题是不弱于直接求 LIS 的,因此考虑 dp。 设 \(f_i\) 表示以 \(i\) 结尾的最长这个什么串的长度,显然没办法直接转移,那么暴力的想法就是多设一维,这样自然就寄了。我们考虑到这样一件事情:如果我们假装 ......
【动态规划】【动态 DP】 CF750E New Year and Old Subsequence
题目描述 定义数字串是好的当且仅当其包含子序列 2017 ,不包含子序列 2016。 定义数字串的丑陋值为最少删掉几个字符,它才能是好的,如果一直不能,就是 \(-1\) 。 给定数字串 \(t\) ,长度为 \(n\) ,\(q\) 次询问求 \([l,r]\) 的丑陋值。 \(1 \leq n, ......
论文阅读笔记——LAVA: Large-scale Automated Vulnerability Addition
LAVA: Large-scale Automated Vulnerability Addition Brendan Dolan-Gavitt∗, Patrick Hulin†, Engin Kirda‡, Tim Leek†, Andrea Mambretti‡, Wil Robertson‡, ......
CodeForces 946F Fibonacci String Subsequences
洛谷传送门 CF 传送门 duel 的时候差点不会 2400 了。 套路地,考虑每个 \(F(x)\) 中与 \(s\) 相同的子序列的贡献。设这个子序列为 \(F(x)_{p_1}, F(x)_{p_2}, F(x)_{p_3}, \ldots, F(x)_{p_n}\)。 我们想要它成为一个子序 ......
CF981E Addition on Segments
将操作按右端点从小到大排序,这样对于当前值相同的点,只有最右边的那一个是有用的。 令 \(f_i\) 表示当前值为 \(i\) 最靠右的点的位置,转移直接暴力判断能否取 \(\max\) 即可,时间复杂度 \(O(nq)\)。 这个东西看起来就不好优化。 不妨调换状态和值,令 \(f_{i,j}\) ......
PAT 甲级【1007 Maximum Subsequence Sum】
本题是考察动态规划与java的快速输入: max[i]表示第i个结尾的最大的连续子串和。b begin[i]表示第[begin[i],i]为最大和的开始位置 超时代码: import java.io.BufferedReader; import java.io.IOException; import ......
CF568E Longest Increasing Subsequence 题解
Longest Increasing Subsequence LIS 问题有两种主流 \(O(n\log n)\) 解法,最常见的树状数组法,以及不那么常见的二分法。然后考虑本题,发现一个神奇的思路就是求出 LIS 后倒序复原出数组。 进一步思考后发现,因为本题是 LIS(Longest Incre ......
文献阅读-We extend the well-established assumption-based interface of incremental SAT solvers to clauses, allowing the addition of a temporary clause that has the same lifespan as literal assumptions.
Abstract: We extend the well-established assumption-based interface of incremental SAT solvers to clauses, allowing the addition of a temporary clause ......
CF1817A Almost Increasing Subsequence
CF1817A 题面翻译 给定长度为 \(n\) 一个序列 \(a\) 以及 \(q\) 次询问,每次询问给出 \(l\) 和 \(r\),找出序列 \(a\) 在 \([l,r]\) 内最长的几乎递增子序列。 对于几乎递增的定义:如果一个序列中不存在连续的三个数 \(x\),\(y\),\(z\) ......
Codeforces Round 685 (Div. 2) B. Non-Substring Subsequence
对于一个长为 \(n\) 的 \(01\) 字符串 \(s\) 有 \(n\) 个询问。第 \(i\) 个询问被 \(l_i, r_i\) 描述 \(1 \leq l_i < r_i \leq n\) 。 对于每个询问,你需要确定 \(s\) 中是否存在一个子序列等同于子串 \(s[l_i \cdo ......
CF261D Maxim and Increasing Subsequence 题解
Maxim and Increasing Subsequence 首先,我们可以发现,当这个重复次数很大的时候,答案就等于序列中出现的不同权值个数。实际上,这个“很大”就可以被当作“大于等于不同权值个数”。 不同权值个数实际上是 \(\min(n,m)\) 级别的,其中 \(n\) 是序列长度,\( ......
洛谷P3607 [USACO17JAN] Subsequence Reversal P 题解
Subsequence Reversal P 思路: 发现,翻转一个子序列,就意味着两两互换子序列里面的东西。 于是我们就可以设 \(f[l][r][L][R]\) 表示: \(\max[1,l)=L,\min(r,n]=R\) 时的最长长度。 则边界为: \(L>R\) 时, \(f=-\inft ......
[CF1580D]Subsequence
D - Subsequence 发现\(f(i,j)\)不好处理,考虑将其转换成另一个函数 考虑笛卡尔树,\(\min(a_i,a_{i+1},...,a_j)\)就是在笛卡尔树上,\(i\)和\(j\)的\(lca\) 那么就可以将问题转移到笛卡尔树上,设\(dp[x][c]\)表示以\(x\)所 ......
[CF568E] Longest Increasing Subsequence
题目描述 Note that the memory limit in this problem is less than usual. Let's consider an array consisting of positive integers, some positions of which c ......
[ARC136C] Circular Addition
题目大意 给定一个长度为 \(N\) 的序列 \(A\),这个序列组成一个环。每次可以选择环上的一段都减去 \(1\),求最少操作次数使得序列每个位置值均为 \(0\)。 思路 首先考虑一次操作会产生什么影响。 发现,会使得序列的最大值最多减 \(1\),环的差分序列最多减 \(2\)。 那么我们设 ......
[ARC136C] Circular Addition 题解
题意 给定一个长度为 \(N\) 的环,每次选取环上一段并使其中每个元素值均加 \(1\)。给定一个长度为 \(N\) 的序列 \(A\),环上元素初始值为 \(0\),求将环变为序列 \(A\) 的最少操作次数。 (\(1 \le N \le 2 \times 10^5, 1 \le A_i \l ......
AtCoder Regular Contest 123 F Insert Addition
洛谷传送门 AtCoder 传送门 用 \((x, y)\) 表示 \(Ax + By\),那么这个等价于 SB 树。 那么直接在 SB 树上二分,遍历一遍找到 \(n\) 个点就好了。可以采用类似线段树查询的方式。 于是现在还剩下一个子问题:给定 \(a, b\),求 \(ax + by \le ......
Codeforces Round 750 (Div. 2) B. Luntik and Subsequences
给一个数组 \(a_1, a_2, \cdots, a_n\) ,定义 \(s = \sum_{i = 1}^{n} a_i\) 。 询问有多少个 \(a\) 的子序列满足 \(\sum a_{i_k} = s - 1\) 。 显然要选出一个 \(1\) 不加入子序列,任意一个 \(0\) 可以加入 ......
Xor-Subsequence (字典树优化DP)
思路 ; 明显的是, 后一个 i 要从前面一个进行更新, 利用dp easy版本 ai <=200, 发现当 n>=300 时, 对他是没有影响的, 这样比较好记录 ans进行更新, 利用数据结构处理 hard 版本 拆位, 利用字典树dp , 把参数变成相同的参数, a[i] 和 i , (比大小 ......