前言
qwq感谢学长APJifengc出的模拟赛(太难了QAQ)
机房里的魔法少女说:
感觉T2是有一些思考难度的,况且十分容易想假(我就假了),遂写一篇题解记录一下;
题目
洛谷 CF1837F Editorial for Two
qwq很难懂是吧,让我们中译中一下
翻译
给定一个长度为n的序列,从中找出一个长度为k的子序列(可以不连续),然后将这个子序列划分为前后两部分,使得前半部分元素和与后半部分元素和的max最小。输出这个最小值。
en..感觉并不是很困难啊,赛时烧烤了5min就想出了一个假思路qwq
假做法(贪心)
假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了假完了
n个里面选k个,分成两部分求和取最大值,(毋庸置疑)做排序操作后选出前k个小的,然后做前缀和操作,遍历到前缀和>=前k个较小值总和/2,就是答案。
但是,大样例过不去!!我又烧烤了5min(走到了更深的错误里QAQ),想到k与n-k两部分中临近的元素可能权值相同位置不同,带来的贡献也不同,所以就把它们存出来,挨个进行选择。(QAQ浪费了好长时间导致完赛前也没想出正解)。
qwq完赛之后走在去食堂的路上(QAQ食堂为什么辣么远啊啊啊),机房大神bjt123 hack我的思路(在此拜谢bjt大蛇%%%%%%%%%),他说:假设有5个值,选4个;
分别为1,2,10086,3,10087
,假做法答案为10089
,正确答案为10087
。
我恍然大悟!
我™想假啦!!
额,回到正题,让我们来打