杂题记录

杂题记录

记录一些没啥分类的妙妙题

[ABC225F] String Cards

date: 2023.10.23

初看题目,感觉直接排序,但是发现, \(k\) 其实是影响的,也就是直接排序并不一定最优

简单的反例

2 2
ba
b

bba>bab但是b在ba之前

不能快排了 但是我们发现数据很小 返回排序的源头 选择排序 每次交换两个比较是否更优

正确性是不难证明的

本质基础的东西,但是更简单,能跑更多情况

CF1110D Jongmah

date: 2023.10.26

\(dp_i,j,k\) 表示考虑到 \(i\),区间 \([i-1,i,i+1]\), \([i,i+1,i+2]\) 分别有 \(j,k\) 个的方案数

注意到 \(j,k < 3\) , 就可以 \(\mathcal{O(m)}\) 转移

P2144 [FJOI2007] 轮状病毒

虽然是做 \(dp\) 时遇到的,但是由于太菜,所以找规律了

打表找规律可得 \(res_i=3\times res_{i-1}-res_{i-2}+2\)

注意要高精度

P2048 [NOI2010] 超级钢琴

\(RMQ\)

容易想到,先做前缀和

这样,当确定了左端点 \(l\) 对于这个 \(l\) 最优的 \(r\) 即为 \([l+L-1,min(n,l+R-1)]\) 内前缀和最大的 \(r\), 可以用 ST 表维护

考虑将这个压入一个优先队列,优先队列里存 当前答案, \(l\) , \(l+L-1\)\(min(n,l+R-1)\) , 当前最优解位置 \(t\)

每次取出最大的加入答案, 把原来区间 \([l,r]\) 分成 \([l,t-1]\)\([t+1,r]\) 分别求值压入队列

The Beach

妙妙的图论题

发现使一个点空出来的操作可以转化为一连串的操作,且相邻两个点这样的操作不会互相影响

所以可以考虑建图,即从每次操作会被堵住的点向空出来的点建边,源点向所有空点建边,跑最短路即可

CF1305F Kuroni and the Punishment

妙妙的随机化题

首先,考虑对每个数做最多 \(1\) 次操作一定可以使得所有数的 \(gcd=2\) , 所以答案 \(\leq n\)

根据以上,可以得出,答案操作方式中一定有至少 \(\frac{1}{2}\) 的数被操作次数 \(\leq 1\) , 否则总操作次数必然 \(>n\)

所以,可以随机选取一个数,检查它所有的质因子

posted @ 2023-12-26 20:51  xiaruize  阅读(15)  评论(0)    收藏  举报