20230527做题笔记
T1
简单最短路
T2
$i$在$i+1$左边:$d_{i+1}<=d_i+D$
$i$在$i+1$右边:$d_{i}<=d_{i+1}+D$
每个点还要满足$d_{pos_i}<=d_{pos_{i+1}}-1$
差分约束即可
T3
差分约束
或者缩点+拓扑
T4
观察条件
发现有边相连的点 必然一正一负
再观察发现,连通块大小大于二的联通快个数大于二时
必然无解
所以考虑单一联通快的状况
分成正负点 二分图
假定左边点是正数
那左边点要满足,$a_i<=T-1$
右边点要满足,$a_j>=-T+1$
有边相连的点要满足,$a_i-a_j>=T$
对于单个点的独立块,把他们设为0,即可满足
再观察发现
答案对于$T$是单调的,那就直接假定$T=10^9$就行了
T5
前缀和
对于第一种限制
$s_{R_i}-s_{l_{i-1}}>=k$
第二种限制
$s_n-s_{R_j}+s_{L_{j-1}}>=k$
发现答案是单调的
于是二分$s_n$
第二种限制就变成
$s_{L_{j-1}}-s_{R_{j}}>=k-s_n$
差分约束
T6
对于相连的点
只需满足
$d_u>=d_v+1$
$d_u<=d_v+2$
差分约束
T7
贪心看能不能不要最高位
一位一位的check,设check到第k位
对相邻点,若(1<<k)&($A_u$^$A_v$)为1时
这条边就是不可选的
那每一位check的时候,把不能选的边删掉后,看连通块大小是否有k即可
T8
转换题意
枚举i,看对于每个物品,是否买第i件
加上题目限制
所以每个选择买的物品都是连续段
那题目就变成对于每个i,选择一个区间
分组背包,此时复杂度$O(n*n*k)$
再观察发现,每次选择区间的右端点总是可以做到让它单调递增
那对于每个i选择了一个右端点j,那其后必然会选$c*(c-1)/2$次$,c=j-i+1$
若选的个数已经比k大了,就break
发现此时复杂度变为 $O(n\sqrt n*k)$
T9
参考
T10
不会。。。

浙公网安备 33010602011771号