tg 89

T1

这个东西满足形成的关系是棵树
然后你钦定\(1\)号为根
然后向下做DFS
把边上所有的东西都乘起来然后约分,
干完了以后就会发现事实上这些所有
最后求所有分母的最小公倍数,就是\(1\)号最小值
然后再DFS一遍求所有点权加和即可

T2

看到这种东西就知道套路扫描线了吧?
考虑线段树维护当前右端点\(i\)时每个左端点的答案
首先记\(last\)表示\(\forall j\in [last,i],a_j=1\)
然后对于\([last,i]\)这一段,新来\(a_i=1\)以后就是区间加
否则就是区间取最大值,可以写吉司机
发现维护的答案满足从右到左单调不降,
可以考虑先二分修改区间位置然后直接做区间覆盖

T3

T4

把奇数位异或\(1,\)然后就变成交换相邻两个不同数
考虑一个位置被经过的次数,\(\sum\limits^{x}_ {i=1}a_i-\sum\limits^{x}_ {i=1}b_i\)
于是\(f_{i,j}\)表示前\(i\)个位置,\(\sum a-\sum b=j\)的方案数
\(cnt_{i,j}\)表示操作数
转移:

cnt[i+1][j+k-l+2000]=(cnt[i+1][j+k-l+2000]+cnt[i][j+2000])%mod;
f[i+1][j+k-l+2000]=(f[i+1][j+k-l+2000]+cnt[i][j+2000]*abs(j)%mod+f[i][j+2000])%mod;
posted @ 2022-11-21 06:57  2K22  阅读(64)  评论(0)    收藏  举报