重庆西南附中集训总结Day19
For:2024/07/26
省流:模拟赛:100+80+0+0=180。一般吧,这场问题在于,许多想法实现不下来,只能卡住继续想,调完代码后所剩时间不多,不过线段树板子挺熟,很快打完了。
模拟赛
早上吃了个牛筋,配置好后给自己断了网,监考教练恐吓没开极域的同学后果自负,乐。下载了压缩包与cena。开始看题!
-
T1 蜜(pow)
令记号 \(a \wedge b\) 表示幂运算 \(a^b\) 。蜜现在要计算一个代数式 $a_1 \wedge a_2 \wedge\cdots \wedge a_n\wedge $ ,但他对运算的顺序感到疑惑。你可以帮他确定一下所有运算的顺序,使得结果最小吗?结果对 \(998244353\) 取模。\(n\leq10^5\)
题面很不合拍,很多处不严谨,所有的数据限定,题面写的都是整数,而不是正整数,给 \(T1\) 考场上直接加了分讨思考,但是想不出来,看了看后面题面,也都是写的整数,才释然。题意也沾点,思考时将运算顺序理解成了交换律,更是,生提了难度。
因为上次 \(T1\) 过于简单,考场觉得肯定能切,看了眼数据范围,笃定是 \(O(nlogn)\) 的做法,开始推,甚至开始思考 \(a^b\) 和 \(b^a\) 的大小关系,当然这玩意不可做,于是想出了更逆天的做法,先求出总乘积,再枚举 \(a_i\) 作底数,计算最小答案,通过逆元消去指数中多乘 \(a_i\) 的,难他天,\(tql\) ,场上觉得能切的人不多,但是线性逆元忘了怎么写了,所以留了个逆元空缺,就去看 \(T2\) 了。
写完 \(T2\) 回来补上了逆元,运行,答案竟不一样??又仔细推敲了下样例2的结果,发现题意指的是结合律。。。🤡这下就很简单了,第一个数为底数,剩下从左往右遍历,乘起来作为指数,遇到 \(1\) 后面就不用考虑了。怕爆 \(ll\) 还在指数中加了个费马小定理取模,出分后没加的也能过,但是加了的更快 \(win\,win\,win\)
-
T2 好图(good)
如果一个 \(n\) 个结点的带权完全无向图,\(M\) 条边的权值分别是 \([1,M]\) 这 \(M\) 个整数(即任意两条边权值不同,任意一个权值仅属于一条边),则称这张图为一个好图。
现在给定一个n个结点m条边的带权无向连通图,边权是[1,M]中两两不等的整数,你需要添加M−m条边,使其成为一张好图,且加边前后最小生成树的权值和不变。问是否存在至少一种满足要求的加边方案。
先考虑了如何令权值和不变,显然,加边后的权值和只会减小或不变,进一步就会想到如果和不变,那么边其实也不会变,因为如果和不变,但边变了,且个边权不同,意味着就有的边值比原来选择的大,根据 \(kruskal\) 的贪心取小边的想法,这显然是不正确的。
所以问题就转化为了:如何加边,使得最小生成树不变,,开桶记录权值是否在图中的话会爆,所以得另辟蹊径,继续模拟 \(kruskal\) 。
设当前可加入边的空位个数为 \(cnt\) ,设在每次合并集合时,要合并的集合分别为 \(i,j\) 集合的大小为 \(g[i],g[j]\) ,合并后多出的可加边空位为 \(g[i]*g[j]-1\) ,但是在原图中集合 \(i,j\) 可能还有其他的连边,所以要减去这些边数,当某时 \(cnt<0\) 了也就意味着答案不存在。
考场上没想出线性做法,只能给出 \(n^2\) 的暴力,就是在 \(krusal\) 中直接遍历边,一个一个减,但是最后跑的也挺快,对于许多细节纠结了较久,时间耗费较多,还得练。
因为时间所剩无几,\(T3\) 的暴力数据范围也不小,所以直接看了 \(T4\) ,\(T4\) 部分分很丰富,有单查询无修改,有直接暴力,有退化成链的,暴力和单查询需要求 \(LCA\) 但是之前一遍没打过,太菜了,于是去打了链的,打了线段树,最后发现状态不能压缩,直接去世。。。菜就多练,太菜了。。

浙公网安备 33010602011771号