按照往常的经验,A 和 B 应该都问题不大,而且我不注重抢什么首杀,于是这次改变策略:C \(\rightarrow\) D \(\rightarrow\) B \(\rightarrow\) A。
先看 C。题目:queue。嗯~不错,原来是大模拟,出题人非常的 CCF。看完感觉就是简单的维护几个队列的模拟,感觉难度不大。
然后感觉自信即是巅峰,直接开了 D。题目:pay。第一遍看错题了,以为老板选的那几个人没给出,一点思路没有。后来发现原来给出了那 \(m\) 个人。马上便想到了一个二分的 \(O(nm \log V)\) 的做法,\(V\) 是值域。但是 \(n \le 10^6\) 的数据非常的阴间,让我以为正解是线性的。但是后来怎么想怎么都要二分。。。确定了必须要二分值域之后,继续想怎么搞掉 \(\max(0,k-d)\) 这个阴间式子。马上想到了距离也具有单调性,于是在 check
内枚举 \(i\) 的同时可以二分解决。但是——这样的复杂度是 \(O(n \log V \log n)\) 的,很危险。想了一下感觉第二个二分好像没必要,但好像处理有点麻烦就懒得搞了,直接硬冲。写了大概十几分钟调出来了,\(70\) 多行非常的离谱。结果一发直接过了,甚至最慢的点只要 \(500\) 毫秒???无所谓,我常数小。
再看 A。题目:color。\(2\) 分钟过了。
然后看 B。题目:drink。不理解这种题怎么放在 B 的,\(1\) 分钟过了。
此刻心里想着:难不成我要 AK 了?马上去搞大模拟,写了半天写完了,交上去 \(40\) 分,发现人名还是一个字符串,就还多开了一个 map
,交上去 \(80\) 分,TLE 了,搞了半天也不会优化,放弃了。AK 明明就在眼前。
个人评价:这套题除了 B 题不符合常理外非常的 CCF。C 放大模拟,C 难于 D,这不就是 CCF 吗。
赛后题解:
A:直接把五个数相加判断一下即可。
B:找最左边的 \(1\) 和最右边的 \(1\) 即可。
C:实现方式不好,听说写链表可以在删除那里实现 \(O(1)\),可惜我不会,听说还有 deque
艹过去的也是无语。
D:写的就是正解。但是也像前文说的的确存在单 \(\log\) 做法,但是由于 \(2\) 个 \(\log\) 跑不满而且常数小,再加上出题人没有故意卡就过去了。
标签:二分,月赛,12,题目,log,CCF,2023.8,模拟,rightarrow From: https://www.cnblogs.com/Nwayy/p/17625595.html