杂题记录
记录一些没啥分类的妙妙题
[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
妙妙的图论题
发现使一个点空出来的操作可以转化为一连串的操作,且相邻两个点这样的操作不会互相影响
所以可以考虑建图,即从每次操作会被堵住的点向空出来的点建边,源点向所有空点建边,跑最短路即可
标签:记录,队列,res,最优,排序,杂题 From: https://www.cnblogs.com/xiaruize/p/17783328.html