【闲散漫步】水题日记

\(\textrm{luogu P1306 斐波那契公约数}\)

斐波那契结论题:

\[\gcd(F_n,F_m) = F_{\gcd(n,m)} \]

\(\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}\)

好水的莫反题,先切它好了。

\(\textrm{luogu P4178 Tree}\)

点分治题,这……算是容斥罢?

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

\(\textrm{luogu P1648 看守}\)

大水题,希望大家也水水经验

想到曼哈顿距离与切比雪夫距离的转化

于是有 \(\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)\)

\(\textrm{luogu P1667 数列}\)

经过那天的B之后就知道这种题是交换前缀和了

然后忘了最后一个不能交换,白调了十分钟

2022.10.08

\(\textrm{CF896E Welcome home, Chtholly}\)

可把孩子乐坏了,\(\cal{O}(nm)\)\(1e5\)

2022.10.09

\(\textrm{luogu P1642 规划}\)

套路似乎很老的样子?

\(\textrm{luogu P2564 [SCOI2009]生日礼物}\)

这个确实是老题了。

\(\textrm{luogu P8112 [Cnoi2021]符文破译}\)

今天上午要彻底水过去了(笑

我差点以为我会 T 掉,实际跑的飞快。

\(\textrm{luogu P8113 [Cnoi2021]自我主义的平衡者}\)

又是好切不好证的结论题。

\(\textrm{luogu P2473 [SCOI2008] 奖励关}\)

状压是吧。

考虑 \(dp_{i,j}\) 为现在在第 \(i\) 关,已选集合为 \(j\) 的期望。

对于此关给了第 \(k\) 个宝物的情况:

  1. 如果前提宝物集合已选,那么既可以选这个宝物转移到 \(j \operatorname{or} 1 \ll k\) 上,也可以不选,转移到 \(j\) 上。

  2. 否则只能不选。

\(\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

\(\textrm{luogu P4193 数字}\)

一道结论紫题。

主要是证明了:

  1. \(\operatorname{D}(n) = (n-1) \bmod 9 + 1\),这个用到了归纳法。

    • 首先 \(x \in \left[1,9\right]\) 满足。

    • 接下来有一个数 \(n\) 各位数字之和在模 \(9\) 意义下与 \(n+1\) 同余。于是规约到之前的情况。

  2. \(\operatorname{f}(n) = \left[\exists x,n = x \cdot \operatorname{D}(x)\right]\) 的周期是 \(22680\)

\[\begin{aligned} \forall n \in \mathbb{N}^+ \And &\exists x \in \mathbb{N}^+,n = x \cdot \operatorname{D}(x)\\ n + T &= x \cdot \operatorname{D}(x) + T\\ &= \left(x + \frac{T}{\operatorname{D}(x)}\right) \times \operatorname{D}(x)\\ &= \left(x + \frac{T}{\operatorname{D}(x)}\right) \times \operatorname{D}\left(x + \frac{T}{\operatorname{D}(x)}\right) \end{aligned} \]

\[\therefore \operatorname{D}(x) = \operatorname{D}\left(x + \frac{T}{\operatorname{D}(x)}\right) \]

\[\therefore \frac{T}{\operatorname{D}(x)} \equiv 0 \pmod 9 \]

\[\therefore T_{min} = 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计数}\)

\[\rm{Kaguya\ AK\ IOI!!} \]

(笑

线段树+乘法原理,期望时间内切了

2022.10.19

\(\textrm{AtCoder [AGC041D] Problem Scores}\)

题解here

感觉像是重新学了一遍容斥……

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\)

利用小根堆,可解了。

\(\textrm{luogu P1484 种树}\)

\(\textrm{P1792 [国家集训队]种树}\)

五分钟切一道蓝好吧(乐

2022.10.26

\(\textrm{CodeForces [CF865D] Buy Low Sell High}\)

还是可反悔贪心。

注意到每次有两种情况:

  1. 选出来一个买入,在今天卖出;

  2. 找之前的一对买卖,反悔一下;

发现无论如何都是 \(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\) 的概率,则:

\[dp_{u,j} = \prod\limits_{u \to v} \frac{dp_{v,j}+1}{2} \]

好转移。

\(\textrm{CodeForces [CF734E] Anton and Tree}\)

之前 2神 给我们说过这道题

很快糊掉了。

\(\textrm{luogu P3201 [HNOI2009] 梦幻布丁}\)

东西不多,一遍切了

我:“那我按秩合并?”

gtm:“可以启发式合并,\(\cal{O}(n\lg n)\),跑得飞快”

我:“那不就是按秩合并嘛”

gtm:“那个词只有在并查集时用”

咱是伞兵。

2022.11.07

\(\textrm{P5278 算术天才⑨与等差数列}\)

不是很理解为什么 \(48\,pts\),理论是过的

似乎数据有误,等一波吧……

\(\textrm{P3792 由乃与大母神原型和偶像崇拜}\)

这题和上面是一道,只不过限制 \(k = 1\) 而已,过了

基本上可以确定是上一题数据锅了

posted @ 2022-11-05 19:53  bikuhiku  阅读(145)  评论(0编辑  收藏  举报