SDOI2015做题笔记

由于我懒,并且这里面除了D2T3恶心以外都不难写,所以很多代码都没写……

排序

对于某一个合法的操作序列(操作序列定义为每次交换的两组数),可以随意交换顺序,仍然合法。所以对于一个操作集合,答案就加\(|S|!\)

从小往大考虑,要么不变,要么枚举变哪两个位置。变完之后显然可以相邻两个缩在一起。

变的位置必须合法,只有1或2种情况。

寻宝游戏

就是求虚树大小,set维护。

序列统计

用原根化乘为加,然后倍增做背包,用NTT优化。

星际战争

二分答案\(t\),然后考虑如何判断合法。

想到网络流:连边\((S,i,t\times B_i),(i,j+m,+\infty),(j+m,T,A_i)\),看是否满流。

(日常想不到网络流……)

约数个数和

有一个式子:
\[ d(i\times j)=\sum_{x|i}\sum_{y|j} [\gcd(x,y)=1] \]
为什么?考虑一个合法的因数,钦定它的质因子能在\(i\)里面拿就在\(i\)里面拿,否则在\(j\)里面拿掉剩下的。这个式子就相当于枚举在\(i\)里面拿的(不包括还需在\(j\)里面拿的质因子)和在\(j\)里面拿的,所以要互质。

然后这题随便推推就没了。

道路修建

看到区间修改,大概可以想到线段树?

考虑如何合并两个区间。你发现对于某一个区间,只能有两边的点不与其他点连通,所以合法的情况并不多。

于是分类讨论一下,合并的方式也不多,就十几种……

然后就没了,可以看 https://www.cnblogs.com/maijing/p/4832745.html ,因为我既不想画图也不想写代码。

猜你喜欢

转载自www.cnblogs.com/p-b-p-b/p/11478356.html
今日推荐