摘要: A 暴力枚举每个字母对应的括号即可。\(O(2^3 n)\) Code B 发现行列之间的影响只会在于四个角上,所以暴力枚举四个角是否填,然后确定上下界判断即可。\(O(2^4)\)。 Code C 显然 \(a_i,b_i > 0\) 和 \(a_i,b_i < 0\) 可以分开做:我们只考虑 \ 阅读全文
posted @ 2021-03-03 10:41 RainAir 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 上来因为 \(C\) 题(细节没写好我甚至写了个对拍)和 \(E\) (也是细节没写好)的问题卡了很长时间,导致差点没做出 \(F\) 和没做出 \(G\) ,并且最后 \(E\) 题还 fst 了。要不然怎么说也上红了 A 维护当前有几个 \(0\),几个 \(1\) 即可。 B 由于有一个 \( 阅读全文
posted @ 2021-03-02 18:32 RainAir 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题意 给出一个长度为 \(n\) 的排列 \(P\)。 一个长度为 \(n\) 的 01 串 \(S\) 被成为好的,当且仅当: 按照以下方式构造序列 \(X,Y\) 首先我们让 \(X,Y\) 为空的序列 对于每一个 \(i=1,2,\ldots,N\),按照顺序,如果 \(S_i=0\),在 \ 阅读全文
posted @ 2021-02-27 17:51 RainAir 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 感觉只会抄题解。。 AGC020E 首先自己可以想到如果只是要单纯的求一个串的方案数可以区间 dp:观察这个表达式,可以写成 f := g | g + f g := '0' | '1' | '(' + f + '*' + 'x' + ')' 其中 x 是一个数字,要求 \(x>1\),并且 \(f\ 阅读全文
posted @ 2021-01-21 00:09 RainAir 阅读(134) 评论(2) 推荐(0) 编辑
摘要: A \(g(x)\) 实际是求原数和去除后缀 \(0\) 后的数的比值,发现第一个不同的值一定会在 \(10^x\) 达到,所以答案就是字符串长度。 B 我们先假设走了 \(m\) 步,并且都是走第一种,那么相当于就是走了 \(\frac{m(m+1)}{2}\),发现将第 \(i\) 个位置改成第 阅读全文
posted @ 2020-12-08 20:53 RainAir 阅读(158) 评论(0) 推荐(0) 编辑
摘要: A 把 \(b\) 都提到最前面就好了。 #include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<int,int> #de 阅读全文
posted @ 2020-12-07 21:29 RainAir 阅读(123) 评论(0) 推荐(0) 编辑
摘要: A. 树的染色 如果确定了某个点的颜色,我们肯定是要求这个点子树内和这个点不同的点的权值和尽量小。 我们设 \(f_v\) 表示钦定 \(v\) 是白色,子树内是黑色的点的权值和的最小值。 合并子树的时候钦定当前的根是白色,如果儿子 \(x\) 和根同色子树和贡献 \(a_x\),答案贡献 \(f_ 阅读全文
posted @ 2020-12-06 21:53 RainAir 阅读(91) 评论(0) 推荐(0) 编辑
摘要: E 题意 有一个随机数生成器,生成 \([0,n-1]\) 之内的数,生成第 \(i\) 个数的概率为 \(\frac{A_i}{S}\),其中 \(S=\sum_{i=1}^n A_i\)。 当 \(\forall i \in [0,n-1]\) \(i\) 被生成至少 \(B_i\) 次时停止生 阅读全文
posted @ 2020-11-20 15:38 RainAir 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题意 给出一个 \(n\) 个点的数,边有边权,支持翻转一条边的边权,以及求最长的满足路径上边权异或和是 \(0\) 的路径。 题解 相当于子树翻转,求相同颜色的直径。 赛时被卡常做法:直接动态维护直径端点,合并的时候暴力枚举合并。 一个比较优秀的做法:转括号序后两个点的距离就是括号匹配后失配的括号 阅读全文
posted @ 2020-11-20 14:53 RainAir 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题意 要求构造大小为 \(n\) 的排列,要求至少 \(\lceil \frac{m}{2} \rceil\) 条限制:第 \(i\) 条限制 \((a_i,b_i,c_i)\) 形如排列中 \(b_i\) 的位置要在 \(a_i\) 和 \(c_i\) 之间。 题解 神仙题。 这个题一般确定排列的 阅读全文
posted @ 2020-11-20 14:41 RainAir 阅读(71) 评论(0) 推荐(0) 编辑