摘要:简单构造,推了一会就推出来了,无法理解为啥有2500分,感觉还不如一些1900的题( #include <bits/stdc++.h> using namespace std; int main() { int t; scanf("%d", &t); while (t--) { int n; sca
阅读全文
摘要:用了很神奇的办法,对于每一个数,取反,暴力找它所有子集,如果dfs到的数字又是我们输入的数字,就继续取反暴力找子集 #include <bits/stdc++.h> using namespace std; const int N = (1 << 23) + 10; int a[N]; bool v
阅读全文
摘要:又上分了,好像打的还可以就会懒得补后面的题 A.Kuroni and the Gifts sort一下,没什么好说的 B.Kuroni and Simple Strings 很容易(并非)可以看出最多只需要一次就可以了,举个例子假设你两次删除的分别是(())和 (),你会发现你只需要删除( ( )
阅读全文
摘要:从左往右扫,找到比第i个小的第一个数字,l[i] = l[last] + (i - last) * m[i],用单调栈O(n)维护这个过程,再从右往左扫,同理可以算出r数组,注意一下long long #include <bits/stdc++.h> using namespace std; con
阅读全文
摘要:过了n天补的题解:D AB就不用说了 C. Obtain The String 思路挺简单的,就是贪心,但是直接贪心的复杂度是O(|s|*|t|),会超时,所以需要用到序列自动机 虽然名字很高端但是就是个数组啦(不过我自己想不到就是了) next[i][j]表示i之后第一次出现j字符的位置,用这个函
阅读全文