多校冲刺 NOIP2021 (19) —「 特殊字符串·宝可梦·矩阵·乘法」
特殊字符串
朴素转移的话去前面枚举一个 \(j<i\) 然后转移。
发现转移点最多只有26个,都记录下来优化就行了。
宝可梦
本题难度看懂题占50%,码代码占50%,思路占0%。
“保证这个地图中任意两点之间存在唯一简单路径” 等价于是一个树,按照题意模拟建出来大环,每次询问做差。
矩阵
最长路长度虽然有限,但是貌似没什么用。
每个点最多有四条边,相当于保证数据没有菊花,直接spfa求最长路就行了,复杂度 \(O(km)\) 。
相同的直接spfa,不会被卡,在“第二题”中也有体现。
乘法
神仙题,口胡一部分,因为不会拉格朗日插值所以没写,要写的话远远不止这么简单。
由于 \(n\) 很大,首先可以考虑分治。
拿出来 \([1,n]\) 所有的奇数,把所有的偶数除以2,递归下去做,记录一下一共除掉了多少个2,最后%4把贡献加回去。
所以就是要求 \(\prod_{i}(2i+1)\) , 直接考虑组合意义,也就是在若干个 \(2i\) 中所有的选择方案的和。
由于选择超过63个,贡献必定为0,所以只需要看选择了 \(\leq 63\) 个的贡献。
那就枚举选择了多少个 \(2i\) , 然后变成了 选择 \(1-n/2\) 的数,最后乘2的若干次方。
设 \(f_{i,j}\) 代表 \(i\) 个数,选 \(j\) 个,所有方案的乘积的总和。
转移考虑选不选 \(i\) , 有 \(f_{i,j}=f_{i-1,j-1}*i+f_{i-1,j}\)
上面式子第一维很大,第二维很小,是个次数不多的多项式?也许可以插值?剩下的我就不会了。
改的时候可以考虑配合 模拟75,你猜是不是找规律,主要需要会次数的证明和记住结论。
总结
这场打的更垃圾了,感觉已经陷入“死“循环了。
开题的时候T1看来2min,感觉可以转化成删区间考虑贡献,感觉不难想一会能做出来就先放一边了。
看T2,10min,没看懂题,先换个题。
看T3,感觉可以直接最长路,看T4。
看T4,简单易懂不会做,除了10pts感觉啥都不会,并且10pts还不是很好打,尝试推特殊性质失败了,大概做了半个小时多点,感觉这题不可做就弃了。
一个小时就这么过去了。
回头看T3,码T3,过两个水样例,解释题意的时候没听以为我理解的是对的,此时大概才9点多点。
看了半天T2看懂了,感觉是个不太好打的模拟。思路已经明确为建大环输出位置差,但是不知道具体咋实现,此时大概10:10。
看T3多了一个样例,测了测过不了????人傻了,为啥我暴力都能错??
检查了半天,大概10:25,问了yspm,路径长是点数,把源代码输出答案的地方加了个1。
T2想了想,找环优先向右,右没有向前,前没有向左,是叶子直接回头。
然后码,发现过不了样例,码完大概才11:10。
乱改,到11:40,还是过不了样例,发现可能需要记录下来每个点到其他点作为下标,而不是从哪来作为下标。
但是当时并没有好好想怎么找到一个点,就感觉很难打,然后就偷了个懒,想试试一个简单点的是不是等价。
11:58过expdf的样例,然而下发样例一个过不了,爆0了。
考后想一会发现直接从一个叶子入手就行了,T1大概20min也调完了。
都是把两个样例过了就能AC,时间差一个多小时。
感觉CSP之后,因为CSP的T3水题没发现,一直在改变策略,但是不是很能驾驭,这场要是我之前正序开题的策略,也许会更好。
但是正序开题弊端确实很严重,容易被非难度递增卡掉。
下一场准备尝试开场先开几个思路,无视题目顺序,尝试去想正解或者高分暴力,按照代码难度递增去码。