2020.05.04ICPC North Western European Regional Contest 2019 重现赛 pro: 6/9/11
rk: 18/552
题解:相当于计算每个人的排名和。某一个分数的人在某一段时间内排名是不变的。记录某个分数上一次排名变更的时间点,就可以在某个人排名改变时推算出当前的信息。
不会
题解:优先选择可以夹两块布的位置。
可以直接贪心,当时跑了二分图匹配。
题解:将每条边的时间改为$l+cv$最短路不变
经过K条边的一条路径的长度 $$ \sum l_i +Kcv $$ 经过K条边的最短路 $$ min[K]+Kcv $$
随着cv的改变,最短路经过的路径可能改变
只需要判断是否存在cv,使$min[K]+Kcv \le min[j]+jcv (j \ne K)$
则经过K条边的最短路是可能的,沿着最短路标记一下经过的点。
把long long传到int里,然后调了半天。
注意卡精度
题解:并查集
队友写的
$$ \frac{h_i-h_j}{i-j} \ge g \Leftrightarrow (h_i-ig)-(h_j-jg) \ge 0 \ \ \ \ \ (i>j) $$ 令$a_i=h_i-ig$
最优解时一定有一个端点横坐标为整点
维护$a_i$的单调递减子序列,枚举右端点为整点,然后在子序列里二分找到对应的线段,求出符合条件的点。
把序列反转一下,取相反数,再做一遍。
变量写错调了半天。
将序列排个序得到新序列,与原序列比较一下得到需要反转的区间。
一开始写了另一个做法,特殊情况没考虑到,WA了半天。
不会