Warning: session_start(): open(/tmp/sess_53af86772f3a22e70e1319a643a28fbc, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239
Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12 2020-2021:teams:hotpot:200711-200717 [CVBB ACM Team]
数据范围:$1 \le k \le n \le 2 \times 10^5$,$1 \le x,y \le 10^9$
解题思路:由于保证了士兵能力值各不相同,我们先确定哪些士兵被留下了,然后以区间的形式消灭不留下的。对于一个区间,如果长度小于$k$,那么区间两端的值必须有一个大于最大值,否则删不干净,这时只能用第二种操作。如果区间长度大于等于$k$要分类讨论,如果$y \times k < x$,那么显然应该用最大值一直删,否则把区间长度删成$k$的倍数然后删光,这时还是要判断能不能用最大值删干净,如果不行就必须删到只剩$k$然后用一次第一种操作