AT2395 [ARC071C] TrBBnsformBBtion】的更多相关文章

基于观察,可以发现以下两条性质: A 可以到 BB,BB 也可以到 A,对 B <-> AA 也是同理的. 可以通过这两个操作交换相邻元素. 对于前者,只需证明 BB 可以到 A 即可,不难发现有构造:BB -> AAAA -> A. 对于后者,不妨设相邻两项为 AB 则不难发现有构造 AB -> AAA -> BA. 于此同时可以发现,这两个操作都是双向等价的,因此我们通过这两个操作得到的串是和原串等价的. 那么可以考虑使用上述两个操作将 \(S, T\) 串变为最简…
TrBBnsformBBtion Let us consider the following operations on a string consisting of A and B: Select a character in a string. If it is A, replace it with BB. If it is B, replace with AA. Select a substring that is equal to either AAA or BBB, and delet…
C - 怪文書 / Dubious Document 题意:定义一种无序的子序列:在原串中随意地取字符并随意打乱顺序.求多个字符串的最长公共无序子序列. #include<cstdio> #include<algorithm> using namespace std; ],q[]; ]; int main(){ scanf("%d",&n); ;i<;i++) s[i]=; while (n--){ scanf("%s",c);…
ARC071 C - 怪文書 / Dubious Document 题目大意:给n个字符串,每个字符串可以通过扔掉一些字母将剩下的字母重排得到新的字符串,求n个字符串都能拼出的字符串且长度最大,若有多个输出字典序最小 直接对每个字母取个min即可 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb p…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…