本来以为打完最多能拿\(120\)分所以没打,事实上自己做法能拿\(170\)分也就能到rk1,血亏
本次模拟赛不知道怎么拼出来的,一共4道题有3道题需要文件输出,最后出现了9道题的题解
都没写代码,凑合着看,思路肯定是能过的(吧?)
网格图
这个题一眼过去可以用暴力 bfs
来打,复杂度\(O(n^2k^2)\)可以得到 \(50\) 分
赛时有诡异优化可过,按照每个正方形连接的连通块个数去排序,不连通任何连通块的时候不进行查找,然后复杂度是玄学最劣能达到\(O(n^4)\),也就是点叉交错的情况,得分预估\(100\)pts,我和nishishui123
都想到了这个做法但是我没打
然后仔细看一下发现可以用LCT维护,最开始预处理把所有空格子都link
起来,在每次变化后都可以直接link
再查询子树大小即可
复杂度\(O(n^2 k \log k)\),带个 $\log $ 而且 LCT 常数巨大所以(可能)过不去,但似乎数据比较水所以(好像)可过,我没打
最后是官方题解,先用并查集标出每个连通块的编号并求出连通块大小,然后在修改时查询一圈所对应连通块的大小取\(\max\),复杂度\(O(n^4)\)
发现每次修改都只会在两列内产生影响,因此可以将复杂度降低到\(O(n^3)\)
序列问题
暴力\(dp\),转移方程 \(f_i=\begin{cases}\max\{f_j+1\} & a_j<a_i且a_i−a_j<i−j \\ f_i & \text{others}\end{cases}\)
满足 \(a_j<a_i\) 且 $ a_i−a_j<i−j$ 一定会满足 \(j<i\)
所以直接按照 \(a_i\) 排序,求一个 \(i-a_i\)的最长上升子序列,所以优化成\(O(n \log n)\)
置换
这道题是NOI2016模拟赛的day1T3,一看就非常可做啊,似乎是全场最难题
我先挂个官方题解,但是似乎不是很能看懂
找个啥时候分析官方题解吧,但是现在我还没看懂
要想看懂官方题解,首先我们要知道置换是什么
一个有限集合 \(S\) 到自身的双射(即一一对应)称为 \(S\) 的一个置换。集合 \(S=\{a_1,a_2,\dots,a_n\}\) 上的置换可以表示为
\[f=\begin{pmatrix}a_1,a_2,\dots,a_n\\ a_{p_1},a_{p_2},\dots,a_{p_n} \end{pmatrix} \]意为将 \(a_i\) 映射为 \(a_{p_i}\) ,其中 \(p_1,p_2,\dots,p_n\) 是 \(1,2,\dots,n\) 的一个排列。
显然 \(S\) 上所有置换的数量为 \(n!\)
(来自\(\text{OI-wiki}\))
恒等置换也就是在进行置换后没有进行任何改变
首先我们先来分析 \(10\) 分做法
显然,一个置换的贡献是它的所有轮换的 \(\text{LCM}\) 的平方
似乎并不是很显然
同桌的你
基环树,我不会,但是本题公认比T3简单
标签:dots,连通,log,题解,置换,复杂度,初三,纪要,衡实 From: https://www.cnblogs.com/Vsinger-LuoTianYi/p/18097324