当前位置:网站首页>【学习笔记】AGC036
【学习笔记】AGC036
2022-08-04 06:03:00 【仰望星空的蚂蚁】
ABC String
- 神仙贪心题
我猜的 - 考虑基本的转化,对于一串相同的字母只保留一个
- 不妨设 c n t [ A ] ≤ c n t [ B ] ≤ c n t [ C ] cnt[A]\le cnt[B]\le cnt[C] cnt[A]≤cnt[B]≤cnt[C]
- 假设我们已经知道了保留的 A A A的位置,那么把未保留的 A A A全部删掉,对于相邻的相同的字母仍然只保留一个
- 设 p p p, q q q, r r r表示 A A A, B B B, C C C出现的次数,因为删除一个 A A A最多去掉一个 B B B或 C C C,所以 p ≤ q p\le q p≤q, p ≤ r p\le r p≤r
- 假设 q = r q=r q=r,那么可以重复删除 B C BC BC直到 p = q = r p=q=r p=q=r。因为考虑 A A A隔开的若干子串,如果长度 ≥ 4 \ge 4 ≥4那么就会出现 B C B C BCBC BCBC的结构,可以删去中间的 B C BC BC,如果长度 = 3 =3 =3就会出现 A B C B A ABCBA ABCBA的结构,可以删去中间的 B C BC BC或 C B CB CB,而根据鸽巢原理一定会有一段落入至少 3 3 3个字母(两端只能最多放一个字母)
- 假设 q < r q<r q<r,
继续寻找必要条件,设含 B B B的子段数目为 x x x,只含一个 C C C的子段数目为 y y y,若 x < y x<y x<y,那么无论如何删除 B , C B,C B,C,它们的出现次数都不会相同。若 x ≥ y x\ge y x≥y,那么我们总能删除一些 C C C使得 B , C B,C B,C出现次数相同,这是因为我们总能对含 B B B的子段进行改造,使得这一段中 B B B的数目比 C C C多 1 1 1 - 回到原问题。问题转化为删除最少的 A A A使得留下的序列合法
- 那么一个合法的序列应该满足:
- 含 B B B的串大于等于 C C C的单位串,含 C C C的串大于等于 B B B的单位串
- 不妨验证其正确性:当 q < r q<r q<r时,因为合法所以含 B B B的串大于等于 C C C的单位串,同时反证法可以证明此时含 C C C的串大于等于 B B B的单位串
雾,卡了很久。当 q = r q=r q=r 时,若含 B B B的串小于 C C C的单位串,同样可以推出 B B B的数目比 C C C少,与前提矛盾 - 设原序列中含 B B B串数目为 b 1 b1 b1, B B B的单位串数目为 b 2 b2 b2,含 C C C串数目为 c 1 c1 c1, C C C的单位串数目为 c 2 c2 c2。
- 如果 b 1 ≥ c 2 b1\ge c2 b1≥c2, c 1 ≥ b 2 c1\ge b2 c1≥b2那么可以把所有的 A A A保留下来。
- 否则不妨设 b 1 < c 2 , c 1 ≥ b 2 b1<c2,c1\ge b2 b1<c2,c1≥b2
- 然后我们每次删 A A A最多只能让 c 2 c2 c2减 1 1 1而不能让 b 1 b1 b1变大
- 那么模拟删 A A A,模拟输出方案即可
- 复杂度 O ( n ) O(n) O(n)
- AC Code
该死调了一下午的大模拟
Modulo Matrix
虽然乱搞过了但是还是学一下正解- 首先可以黑白染色考虑
- 考虑对每条穿过黑色格子的斜对角线和正对角线分配质数 p p p
- 每个黑色格子上的数就是穿过它的正对角线和副对角线上质数的乘积
- 每个白色格子上的数就是上下左右四个数的 lcm \text{lcm} lcm加一,即 4 4 4个小质数的乘积加一
算下来差不多就在 1 0 15 10^{15} 1015左右
Flipper
有没有那个大佬教我怎么乱搞啊
组合优化趣题 其实考场上瞎猜下界也能骗分
两个状态互相可达,当且仅当每一列 1 1 1的奇偶性相同,每一行 p 0 , 1 , 2 p_{0,1,2} p0,1,2完全相同或全部取反。
考虑证明。显然转移是双向的,所以 A A A, B B B能转移到一个相同的状态就相互可达。
那么构造成一个大小为 ( 1 0 9 − 1 ) × ( 1 0 9 − 2 ) (10^9-1)\times (10^9-2) (109−1)×(109−2)的全是 0 0 0的矩阵即可。
令 p [ i ] = ⊕ x a [ x ] [ i ] p[i]=\oplus_xa[x][i] p[i]=⊕xa[x][i], q [ x ] [ i ] = ⊕ y a [ x ] [ y ] ( y m o d 3 = i ) q[x][i]=\oplus_{y}a[x][y](y\bmod 3=i) q[x][i]=⊕ya[x][y](ymod3=i)
考虑构造 a [ i ] = ⊕ x q [ x ] [ i ] a[i]=\oplus_{x}q[x][i] a[i]=⊕xq[x][i], b [ i ] = ∑ x p [ x ] ( x m o d 3 = i ) b[i]=\sum_{x}p[x](x\bmod 3=i) b[i]=∑xp[x](xmod3=i)
那么 a [ i ] a[i] a[i]和 b [ i ] b[i] b[i]的奇偶性必须匹配,剩下的 1 1 1的个数是 ∑ i = 0 2 max ( a [ i ] , b [ i ] ) \sum_{i=0}^2\max(a[i],b[i]) ∑i=02max(a[i],b[i])
然后可以把若干个 q [ x ] q[x] q[x]取反,但是必须保证 a [ i ] a[i] a[i]奇偶性不变,也就是翻转偶数个 q [ x ] q[x] q[x]
然后玄学贪心。考虑调整一下,把 ( 1 , 1 , 1 ) , ( 0 , 1 , 1 ) , ( 1 , 0 , 1 ) , ( 1 , 1 , 0 ) (1,1,1),(0,1,1),(1,0,1),(1,1,0) (1,1,1),(0,1,1),(1,0,1),(1,1,0)全部翻掉。
然后随便翻一个满足奇偶性。然后只会翻 ( 0 , 0 , 1 ) , ( 0 , 1 , 0 ) , ( 1 , 0 , 0 ) (0,0,1),(0,1,0),(1,0,0) (0,0,1),(0,1,0),(1,0,0)种类之一。
结论题,乱搞题
Subset Sum Game
- Alice \text{Alice} Alice必胜当且仅当能将 n n n个数分成 n 2 \frac{n}{2} 2n组,并选择其中一组中的一个数,使得这个数加上剩余 n 2 − 1 \frac{n}{2}-1 2n−1组数中的最小值 ≥ L \ge L ≥L,最大值 ≤ R \le R ≤R
- 否则 Bob \text{Bob} Bob总能使得当前局面下 Alice \text{Alice} Alice不存在必胜策略,直到所有数都被取完
- 不妨看成是 Alice \text{Alice} Alice强行保留了一个数,并强行扔掉了一个数
- 枚举这两个数即可做到复杂度 O ( n 2 ) O(n^2) O(n2)
- 毋宁为猜结论的好题。
Neither AB nor BA
- 巧妙的计数题
- 考虑黑白染色,那么每次删除的位置都会跨过黑和白
- 然后考虑做一个翻转,把奇数位的 B → A B\to A B→A, A → B A\to B A→B
- 那么原问题转化为长度为 n n n的序列,不能删除 A A AA AA或 B B BB BB,最终能够全部删完的序列数量
- 单独考虑 A A A,因为每次至多删除 1 1 1个,所以 A A A的数目不能超过 n 2 \frac{n}{2} 2n,同理 B B B的数目也不能超过 n 2 \frac{n}{2} 2n
- 问题转化为求 A , B A,B A,B数量 ≤ n 2 \le \frac{n}{2} ≤2n的序列的个数
- 根据众数那套理论可以转化为求出现次数 > n 2 >\frac{n}{2} >2n的序列个数
- 答案是 3 n − 2 ∑ i = n 2 + 1 n ( n i ) 2 n − i 3^n-2\sum_{i=\frac{n}{2}+1}^n\binom{n}{i}2^{n-i} 3n−2∑i=2n+1n(in)2n−i
Develop
边栏推荐
- unity webgl报 Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON
- MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
- 基于子空间结构保持的迁移学习方法MLSSM
- curl (7) Failed connect to localhost8080; Connection refused
- matlab的2DCNN、1DCNN、BP、SVM故障诊断与结果可视化
- 子空间结构保持的多层极限学习机自编码器(ML-SELM-AE)
- 错误记录:TypeError: object() takes no parameters
- 代码小变化带来的大不同
- mysql锁机制
- 如何画好业务架构图。
猜你喜欢
随机推荐
反射与枚举
“需求370解决解决爬取章节之后主题讨论评论消失问题”工作总结
花了近70美元入手的学生版MATLAB体验到底如何?
likeshop单商户高级版企业源码发布了新的版本1.8.1
系统流量预估、架构设计方案
likeshop外卖点餐系统开源啦100%开源无加密
MMDeploy部署实战系列【第四章】:onnx,tensorrt模型推理
关于我写的循环遍历
mysql锁机制
90多款matlab工具箱打包放送
MATLAB版量化交易技术分析工具TA-Lib【不付费也可获取,不要被付费吓跑】
Database knowledge: SQLServer creates non-sa user notes
专题讲座7 计算几何 学习心得
TypeScript基本类型、类、封装、继承、泛型、接口、命名空间
字符串的一些方法
舍不得花钱买1stOpt,不妨试试这款免费的拟合优化神器【openLU】
数组的一些方法
SystemVerilog-条件(三元)运算符
Time Series Forecasting Based on Reptile Search RSA Optimized LSTM
Network skills: teach you to install batteries on the router, you can still surf the Internet when the power is cut off!