Loading [MathJax]/jax/output/CommonHTML/autoload/multiline.js

[做题记录] 2022年1月开始的刷题记录 (一)

Fail 说明不独立做出
Accept 说明独立做出

【Shoi2015】超能粒子炮·改

Accept
拿Lucas推推式子就好。

【BZOJ】神犇和蒟蒻

Accept
μμ 的情况显然是 11
根据恒等式 φ(ij)=φ(i)φ(j)gcd(i,j)1φ(gcd(i,j))φ(ij)=φ(i)φ(j)gcd(i,j)1φ(gcd(i,j))
可以得到 φ(i2)=iφ(i)φ(i2)=iφ(i) 。杜教筛即可。

【BZOJ】 上学路线

Accept
经典容斥。

fifi 表示到 ii 点的路径条数, 枚举路径经过的第一个点, 那么就是 fjfj 乘一个组合数。

【BZOJ】 DZY Loves Math IV

Accept
求:

ni=1mj=1φ(ij)ni=1mj=1φ(ij)

其中 n105,m109n105,m109

考虑暴力枚举 nn
设一个 f(n,m)=mi=1φ(in)f(n,m)=mi=1φ(in)
考虑套路地处理 nn
n=oaii,q=oi,p=nqn=oaii,q=oi,p=nq
那么有:

f(n,m)=pmi=1φ(iq)=pmi=1φ(i)φ(q)gcd(i,q)1φ(gcd(i,q))=pmi=1φ(i)d|gcd(i,q)φ(qd)=pd|qφ(qd)f(d,md)

注意 n=1 的时候可以直接杜教筛带走, 暴力递归即可。

中间那个变化就是对 gcd(i,q)φ(d) 之类的代替, 然后观察到互质直接乘就好。

【JLOI2015】 有意义的字符串

Accept

观察到这个形式很像递推, 直接补项然后递推, 去掉最后一项就好。

【UR #4】 追击圣诞老人

Fail

看起来就像 k 短路。
那么考虑每次找到最小的序列然后扩展, 可以对每个点可以访问到的边开堆, 然后树上倍增和可持久化左偏树优化一下求堆可以做到时空两 log
考虑用树剖优化这个过程, 那么用一个数对 (x,y) 表示一条链上的堆, 每次只要支持链上求最小值就好, 可以用树剖实现。
预处理一下链上前缀 min 可以做到 nlog2n
由于卡空间, 用 set 维护答案集合, 多于 k 就干掉。

【UR #5】 怎样更有力气

Fail
一看就是按照 w 排序。
不知道怎么处理连通块的问题, 记住拿度数最小点去讨论所有点的套路就好了。

【UR #5】 怎样跑的更快

Accept
考虑把 gcd 代表的函数用别的函数反演掉, 几次之后可以得解。

【UR #6】 智商锁

Fail
不太像人做的。。。
分四个组, 取小点跑生成树然后 meet on middle

【UR #6】 懒癌

Fail
可以在出阴间模拟赛的时候搬。
可以根据决策办法得到一个状压dp, 然后分析性质到图上以后转化为图论解决, 不太会。

【清华集训2014】玛里苟斯

Fail
发现 k3 可以暴力。
k2 可以直接讨论。

【UR #2】猪猪侠再战括号序列

Accept
被惯性思维误导了。
看到括号序列自然对应到折线上去反而有点迷茫。
考虑直接从左往右扫, 考虑把所有右括号变成左括号, 直接每次看到右括号就去找个左括号翻过来就好。

【UR #2】树上GCD

Fail
没有想到可以对长度根号分治这个事情。
直接祖先关系的直接处理, dn 的做树形 dpdn 的情况启发式合并, 最多只会合并 n 次。每种处理方式都是维护一个桶存距离是 d 的倍数的点有多少个。
话说这个dp的转移方式好神秘哦(。

[POI2010]MOS-Bridges

Accept
混合图欧拉回路的板板。

【UR #4】元旦激光炮

Accept
对每个数组取 k/3 讨论就可以得到一个 100 次的做法。
同时对三个数组下标二分可以做到 3log2n
大概就是每次取所有的 mid 然后决策一下其中一个的最小值就好了。

【BZOJ 4403】序列统计

Accept
憨憨题。
显然是一个隔板法可以解决的问题, 一个上指标求和就好了。

【BZOJ 3394】Sum

Accept
杜教筛模板。
记得 ϕ  I=Id
函数 f 里面带 i 的, 在函数 g 里面配一个 i 就好。

「JOISC 2018 Day 1」道路建设

Accept
看起来是个LCT写一发WA了。
发现离散化挂了, 伞兵。

[POI2010]TEL-Teleportation

Accept
有意思的题。
考虑把图分为六个部分 A,B,C,D,E,F
A, F 就是起点终点, B, E 可以确定, 然后 C, D, 看连边, 自由点随便找一个丢就好。

[POI2010]KOL-Railway

Accept
有一个经典的结论是 i<j<kak<ai<aj 等价于 i,j 不能进入同一个栈。
那么有一个暴力就是根据这个直接连边, 然后每次贪心染色就好。
但是这样建图的复杂度是 n2 的, 考虑优化。
由于我们只需要知道每个点染色情况, 其实可以对每个连通块保留一棵生成树。
考虑进行这样一个操作, 将 i 从小到大加入, 然后每次找一条边连上(可能找不到)。
即手上有一个 j, 在前面找一个 i, 使得 后面存在点 k, 满足要连边的这个条件就可以找到一条边。
考虑用可并堆维护所有联通块里面的 ai 最小点, 然后处理一个后缀最小值, 每次取出 ai 最小的合并就行。

[POI2010]ANT-Antisymmetry

Accept
直接manacher就行。

[POI2010]CHO-Hamsters

Accept
憨题。
每次枚举一个字符串转移, 矩阵优化就好。

[POI2010]KOR-Beads

Accept
调和级数枚举一下哈希一下完事了。

[POI2010]MOT-Monotonicity 2

Accept
随便树状数组维护一下转移就行。

[POI2010]GRA-The Minima Game

Accept
虽然不知道怎么做, 但是可以发现就直接选一段最大的部分, 那就可以有简单的 n2 dp, 可以简单做一个前缀优化。

[POI2011]KON-Conspiracy

Fail
很好, 有被教育到。
首先判方案有个 2SAT 的 sb 做法相信是个人就会。
但是有个很简单的做法。
发现在团里面点度数大于独立集, 那么就可以直接从度数大往小了加, 每次能加就加。
然后最后发现拿出去不超过两个点, 暴力枚举 n 种答案是否合法就行。

[POI2011]SEJ-Strongbox

Fail
观察到如果 x 是密码那么 2x 也是。
可以观察到一定有最小 x|n 的性质。
那么可以大力枚举然后剪枝啥的搞搞就好。

[POI2011]ROZ-Difference

Accept
枚举最大的字符最小的字符,做归并即可。

[POI2011]SMI-Garbage

Fail
降智了。
保留要跑的边搞欧拉回路就好了。

[POI2011]TEM-Temperature

Accept
双指针扫就完了。

[POI2011] DYN-Dynamite

Accept
难得一次写对这种贪心。
记录子树里面里 x 最远的未选择点和最近的选择点就可以考虑子树内外的覆盖情况了。
那么二分答案以后贪心判断即可。

[POI2011]PRO-Programming Contest

Accept
简单的费用流模型, 但是会TLE。
不难发现可以动态增边, 这样就可以了。

[POI2011]PAT-Sticks

Accept
小木棍排序以后选三条最大的边存下就好。

[POI2011]INS-Inspection

Accept
根据榕树之心的经典结论发现只有重心是可能的, 那么暴力即可。

本文作者:HN-wrp

本文链接:https://www.cnblogs.com/clover4/p/15798578.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   HN-wrp  阅读(69)  评论(7编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起