[整理]两次NOI Online 提高组试题
两次考得都好差啊啊,这篇博客算是给自己的一个总结+激励吧。
那么我们开始正题:(都或多或少参考了一些洛谷题解的思路)
NOIOL 1
T1 序列
这是一个图论题!!!
既然是图论题,那么避不开的问题就是如何建模。
按照一般图论题的套路,两个操作肯定要选一个连边,我选择1操作连边(其实两个操作都可以)
那么2操作就可以拆成两个1操作。
也就是:
等价于
所以我们可以新建一个虚拟节点(设为n+i),对于2操作,连两次边。
然后我们利用冰茶姬把连通块并起来(顺便统计点权和)
然后我们根据玄学可得有以下三种情况不满足题意:
1.有\(a_i\ne b_i\)的单独的点(没人和它交换数值只能孤独终老)
2.所有点均连通但总点权不是偶数(全是1操作只能自增偶数,如果不是偶数就炸了)
3.是二分图,但两边点权和不一样(无法一起自增)
然后就差不多完了。
T2 冒泡排序
这题一看就是个数据结构题,正好我们的逆序对可以树组(我口胡的树状数组的缩写)求!
用树组求出无交换时每轮的逆序对数,
然后思考交换带来的影响:
1.\(p_x<p_{x+1}\),当前逆序对+1,排到当前数时要还原
2.\(p_{x+1}<p_x\),同理。
所以完了。
T3 最小环
我们在幼儿园的时候就接触过了和同近积大/和一定差小积大的概念,这道题也要用到。
也就是说,要想使积最大,我们要贪心地让数值离得近的数乘起来。
所以我们最后构造出来的图大概是这样:把数字按顺序分一些环,再把环插起来使隔k的数相差尽量小!
但是只这样会\(\text{TLE}\),我们需要加上神奇的记忆化。
就完了。
NOIOL 2
T1 涂色游戏
妥妥的数学题。
最后多的颜色肯定是数小的,我们不妨设\(p_1<p_2\)。
现在考虑这样一种情况:
可以贪心地想到:\(Q=P+1\)时红方块最多。
随便算一算,检验一下就行了。(记得约掉\(\gcd\)啊)
T2 子序列问题
挺……板子?
线段树记录一下,然后记录一个lst[i]
表示i之前第一个i的位置(好绕啊啊啊)
差不多……完了?
T3 游戏
转一个julao的博客
用到的二项式反演
感觉写得已经很完善了,对于解决这道题是够用的。(才不是因为嫌麻烦不想手打了呢嗯哼)
那么,没了。
NOIOL 3
\(rp^{rp^{rp}}_{rp_{rp}}+=\infty\)