D
第一眼想到的是 2-SAT,也就是将 $s_i$ 连边到 $t_i'$,$t_i$ 连边到 $s_i'$,然后缩点,只需要看 $s_i$ 和 $s_i'$ 是否在同一个 SCC 里,在的话就无解。
如果要输出方案的话,比一下拓扑序就行。
由于这题正好有 $n$ 条边,有解的话一定是二分图,也可以直接判断是不是二分图。
也可以用带权并查集做。
E
题面看起来真吓人。
洛谷翻译缺斤少两,害我读错题。选出来的比赛的顺序是不能变的,不然的话直接排序就行了。
设 $f_{i, j}$ 表示前 $i$ 场比赛选了 $j$ 场的最大得分,那个 $0.9^{k - i}$ 可以用秦九韶算法放到转移的式子里。
最后枚举 $k$ 就行了。
F
相当于在一个平面直角坐标系上查给定长和宽的矩形内最多有多少个点,这个一看就很数据结构。
然后我发现我不记得扫描线怎么写了,6。
这题跟扫描线有点区别。首先按照时间顺序把点排序,然后从左往右扫。
这个时候显然不能直接枚举第二维坐标,考虑用一个线段树维护 $[i, i + w)$ 内的点的数量,题意就变成求这个序列的全局最大值,而加一个点和删一个点相当于做了一次区间加,所以写一个区间加,查全局最大值的线段树就行。
G
题目可以转化为 $n$ 个点 $m$ 条边的二分图个数。完全不会。学会了再补上。