【闲散漫步】水题日记
\(\textrm{luogu P1306 斐波那契公约数}\)
斐波那契结论题:
\(\textrm{luogu P1445 [Violet]樱花}\)
简单的计数。
\(\textrm{luogu P2152 [SDOI2009] SuperGCD}\)
别看啦, python 水的
import fractions print(fractions.gcd(int(input()),int(input())))
\(\textrm{luogu P4454 [CQOI2018]破解D-H协议}\)
水经验题。
本题意为:
给你 \(g,p,a,b\) ,已知 \(a \equiv g^x \pmod p\) , \(b \equiv g^y \pmod p\) 。
求解 \(g^{x \cdot y}\) 。
2022.09.24
\(\textrm{luogu P3674 小清新人渣的本愿}\)
\(\texttt{bitset}\) 直接艹就行了,乐死。
\(\textrm{luogu P4137 Rmq Problem / mex}\)
在上一题的基础上改了 3 min,乐死。
2022.09.25
\(\textrm{luogu P3455 [POI2007]ZAP-Queries}\)
好水的莫反题,先切它好了。
点分治题,这……算是容斥罢?
2022.09.26
\(\textrm{luogu P2602 [ZJOI2010] 数字计数}\)
水数位DP我都调这么长时间,没救了
2022.09.27
\(\textrm{luogu P3327 [SDOI2015]约数个数和}\)
我怎么老是忘了 \(\mu(1) = 1\) 啊,没救了。
2022.10.06
我好鸽啊()
把之前 KMP 重修了一下
\(\textrm{luogu P3193 [HNOI2008]GT考试}\)
发现还挺水的,没考啥 KMP。
倒是我 if 写成 while 调了一个小时,太干了
2022.10.07
大水题,希望大家也水水经验
想到曼哈顿距离与切比雪夫距离的转化
于是有 \(\sum\limits_{i = 1}^d \left\lvert x_i-y_i\right\rvert = \max\limits\{\left\lvert (x_1\pm x_2\pm \ldots\pm x_d)-(y_1\pm y_2\pm \ldots\pm y_d)\right\rvert\}\)。
试一遍正负号的情况,扫一遍就好。
时间 \(O(n\cdot 2^d)\)。
经过那天的B之后就知道这种题是交换前缀和了
然后忘了最后一个不能交换,白调了十分钟
2022.10.08
\(\textrm{CF896E Welcome home, Chtholly}\)
可把孩子乐坏了,\(\cal{O}(nm)\) 过 \(1e5\)。
2022.10.09
套路似乎很老的样子?
\(\textrm{luogu P2564 [SCOI2009]生日礼物}\)
这个确实是老题了。
\(\textrm{luogu P8112 [Cnoi2021]符文破译}\)
今天上午要彻底水过去了(笑
我差点以为我会 T 掉,实际跑的飞快。
\(\textrm{luogu P8113 [Cnoi2021]自我主义的平衡者}\)
又是好切不好证的结论题。
\(\textrm{luogu P2473 [SCOI2008] 奖励关}\)
状压是吧。
考虑 \(dp_{i,j}\) 为现在在第 \(i\) 关,已选集合为 \(j\) 的期望。
对于此关给了第 \(k\) 个宝物的情况:
-
如果前提宝物集合已选,那么既可以选这个宝物转移到 \(j \operatorname{or} 1 \ll k\) 上,也可以不选,转移到 \(j\) 上。
-
否则只能不选。
\(\textrm{luogu P3964 [TJOI2013]松鼠聚会}\)
曼哈顿转切比雪夫和切比雪夫转曼哈顿都要来一遍喵。
切比雪夫距离把 \((x,y)\) 转成 \(\left(\frac{x+y}{2},\frac{x-y}{2}\right)\) 之后求曼哈顿就好了喵。
记得开一下 long long
喵。
2022.10.10
\(\textrm{luogu P2324 [SCOI2005]骑士精神}\)
谔谔,事 IDA*
2022.10.13
今天随便切了点数学题
然后水一道 状压DP
\(\textrm{P1539 [TJOI2011] 01矩阵}\)
尽然还有一个巨佬 FWT 切的,什么神仙。
在 2神
的伟大指引下,我切了一道构造
\(\textrm{AtCoder [ARC149C] Avoid Prime Sum}\)
以及一道最小生成树好题:
\(\textrm{luogu P5994 [PA2014]Kuglarz}\)
2022.10.15
一道结论紫题。
主要是证明了:
-
\(\operatorname{D}(n) = (n-1) \bmod 9 + 1\),这个用到了归纳法。
-
首先 \(x \in \left[1,9\right]\) 满足。
-
接下来有一个数 \(n\) 各位数字之和在模 \(9\) 意义下与 \(n+1\) 同余。于是规约到之前的情况。
-
-
\(\operatorname{f}(n) = \left[\exists x,n = x \cdot \operatorname{D}(x)\right]\) 的周期是 \(22680\)。
2022.10.16
\(\textrm{luogu P7914 [CSP-S 2021] 括号序列}\)
哈哈哈哈一道绿题我调了1h我是傻逼啊啊啊啊啊啊啊
看错题了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
\(\textrm{luogu P5664 [CSP-S2019] Emiya 家今天的饭}\)
这题压状态的思路还蛮妙的嘛。
2022.10.17
\(\textrm{Atcoder [AGC016E] Poor Turkeys}\)
可怜的火鸡!
虽然但是,这题多少恶评罢,蓝差不多
以及第一次黑最优解((
2022.10.18
是一道字符串题,比较推荐。
\(\textrm{AtCoder [ARC060D] 最良表現}\)
它算是用到了一些字符串循环的一些知识吧
总之先有结论:划分数不超过 \(2\)。
也就意味着方案不超过 \(n-1\) 种(所以什么模数就是扯淡
然后如果循环节是 \(1\),直接输出 \(\tt{n\ 1}\)。
如果字符串本身无循环,输出 \(\tt{1 1}\)。
有循环,只要扫一遍 \(1 \sim n\) 每个位置,然后判断一下前后是否合法即可。
用 KMP
,很方便的。
但是我这个憨憨调了tm几个小时,又是没开 while
\(\textrm{luogu P6373 「StOI-1」IOI计数}\)
(笑
线段树+乘法原理,期望时间内切了
2022.10.19
\(\textrm{AtCoder [AGC041D] Problem Scores}\)
感觉像是重新学了一遍容斥……
2022.10.22
\(\textrm{luogu P2167 [SDOI2009]Bill的挑战}\)
这个属实是码力复健了
搞了半天,是我状态设的不好啊,那没事了
2022.10.25
\(\textrm{Atcoder [AGC018C] Coin}\)
可以考虑先钦定 \(n\) 个人全都纳金币,然后再反悔出 \(y\) 个人纳银币,\(z\) 个人纳铜币。
注意到两个人 \((a_x,b_x,c_x)\) 与 \((a_y,b_y,c_y)\),当且仅当 \(b_x-a_x+c_y-a_y \ge b_y-a_y+c_x-a_x\) 时,我们会让 \(x\) 纳银币,\(y\) 纳铜币。
将式子挪一下项,得到 \(b_x-c_x \ge b_y-c_y\)。
感性理解:若我们把这 \(n\) 个人按 \(b-c\)维度排序,则一定存在一个位置 \(k\),使得最优方案中纳银币的人一定都在 \(1 \sim k\),纳铜币的人都在 \(k+1 \sim n\)。
利用小根堆,可解了。
五分钟切一道蓝好吧(乐
2022.10.26
\(\textrm{CodeForces [CF865D] Buy Low Sell High}\)
还是可反悔贪心。
注意到每次有两种情况:
-
选出来一个买入,在今天卖出;
-
找之前的一对买卖,反悔一下;
发现无论如何都是 \(val-x\) 的形式,\(val\) 是这次的价格,\(x\) 表示买入价格,或是反悔前的卖出价格。
用个堆维护一下。
\(\textrm{luogu P4053 [JSOI2007] 建筑抢修}\)
哈哈哈哈,他妈没写结构体用个id
数组给序,结果传错了,我是伞兵。
\(\textrm{AtCoder [ABC237G] Range Sort Query}\)
线段树应用++。
考虑到我们只用在意 \(x\) 所在的位置,直接把大于 \(x\) 赋值为 \(1\),小于 \(x\) 的赋值为 \(0\)。
然后区间排序就好搞了。
\(\textrm{luogu P1640 [SCOI2010] 连续攻击游戏}\)
回去重修了一下匈牙利算法
我完全明白了!
然后看题。
可以把属性作为左部,把装备作为右部,则每个装备会和两个属性连边。
那我们从 \(1\) 开始做匈牙利,一旦做不了就停下呗
同时看到了大佬打时间戳的优秀写法。
\(\textrm{AtCoder [ABC034D] 食塩水}\)
是分数规划,切了
2022.10.27
\(\textrm{CodeForces [CF1139E] Maximize Mex}\)
啊,是二分图
因为删东西不方便,那就换成从后往前加边。
2022.11.04
\(\textrm{P3514 [POI2011]LIZ-Lollipop}\)
较为轻量化的思维题。
考虑到,若 \(k\) 可选,\(k-2\) 也可选。
如果选 \(k\) 时左右端点为 \(l,r\),如果 \(s[l] = \tt{T} \lor s[r] = \tt{T}\),直接删掉那个就好,否则两边都是 \(1\),都删掉就好。
2022.11.05
\(\textrm{CodeForces [CF643E] Bear and Destroying Subtrees}\)
发现如果深度超过 \(60\) 层之后,\(2^{-60}\)?是不是几乎对答案没有影响啊?
那每次更改往上翻新 \(60\) 层不就好了?
注意到设 \(dp_{i,j}\) 为节点 \(i\) 子树深度 \(\le j\) 的概率,则:
好转移。
\(\textrm{CodeForces [CF734E] Anton and Tree}\)
之前 2神 给我们说过这道题
很快糊掉了。
\(\textrm{luogu P3201 [HNOI2009] 梦幻布丁}\)
东西不多,一遍切了
我:“那我按秩合并?”
gtm:“可以启发式合并,\(\cal{O}(n\lg n)\),跑得飞快”
我:“那不就是按秩合并嘛”
gtm:“那个词只有在并查集时用”
咱是伞兵。
2022.11.07
不是很理解为什么 \(48\,pts\),理论是过的
似乎数据有误,等一波吧……
\(\textrm{P3792 由乃与大母神原型和偶像崇拜}\)
这题和上面是一道,只不过限制 \(k = 1\) 而已,过了
基本上可以确定是上一题数据锅了