tg 53

直接爆零

讲题

T1

排列:
开桶记录每个数位置
交换差值为\(1\)的逆序对即可构造合法方案
证明就是每次只减少\(1\)对逆序对

序列:不会

T2

写的官方题解
为表示方便,记\(e=\lfloor\log_2 n\rfloor\)
通过倍增法造出\(y=2^{e}\cdot n\)
\(z=y\space \mathrm{xor} \space x\)
发现\(gcd(z,n)=1\)
反手构造\(a\cdot n-b\cdot z=1\)
然后找到最小的正整数解\(a,b,2|b\)
最后\(a\cdot n\space \mathrm{xor}\space b\cdot z=1\)

T3

分治,扫描线
(常数比较大写的时候注意效率)
写的分治
当递归到\([l,r]\)时,记\(mid=\frac{l+r}{2}\)
由于最大值和最小值均在\([l,mid]\)\([mid+1,r]\)的区间最后都会递归到,
只考虑最大值和最小值分别落在两个区间的贡献
从大到小枚举每一个\(i\in[l,mid],\exist p_1,p_2\in[mid+1,r]\)满足:
(记枚举区间的右端点为\(r'\))
\(1.r'\in[mid+1,p_1]\)最大值和最小值均在\([i,mid]\)
\(1.r'\in[p_1,p_2]\)最大值或最小值有一个在\([i,mid]\)
\(1.r'\in[p_2,r]\)最大值和最小值均在\([mid+1,r']\)
随着\(i\)减小,\(p_1\& p_2\)单调递增,双指针维护即可
顺手维护一个popcount的桶即可

T4

不会

posted @ 2022-09-29 19:20  2K22  阅读(5)  评论(0)    收藏  举报