20250904

Greedy Gift Takers

https://www.luogu.com.cn/problem/P4090

\(i\) 不能到队首,则 \(i + 1\) 显然也不能。二分当前 \(x\) 是否能到达队首。

本来要考虑被扔的必须能到队首的限制,但是实际上可以忽略,直接从小到大直接开扔。因为如果当前被扔的 \(y\) 永远不能到达队首,那么 \(x\) 之后到达 \(y\) 的位置以后,也还是无法到达队首。

使用桶排可以 \(O(n \log n)\)

心灵治愈

能写出这种题面的赶紧去康宁心灵治愈一下?

\[\sum_{1 \le a_i \le m}[\gcd(\gcd a_i, m) = 1] = \sum_{d\mid m}\mu(d)(m / d)^n \]

找到 \(m\)\(k\) 个不同质因数,直接做应该可以是 \(O(2^k)\) 的,dp 一下就是 \(O(k^2)\) 的。

做菜

比较牛,先转化成单次 \(O(n \log n)\) 的 priority_queue 做法,然后有一个 \(O(N^3V^4)\) 的 DP。

数据交互

https://www.luogu.com.cn/problem/P6666

比较经典的拆贡献,看哪边 LCA 在另一边的路径上。

DDP 好题。但是为什么没看出来 DDP。

发现转移矩阵只有 \(4\) 个地方有值,并且需要对矩阵两个位置的区间加,乘了之后还是对这两个位置加。就可以直接打 tag 维护。

使用轻重链剖分+线段树,\(O(n \log^2 n)\)

posted @ 2025-09-12 21:20  SZwinsun  阅读(11)  评论(0)    收藏  举报