金华の第一场模拟赛
预期:\(100 + 65 + 35 + 30 = 230\)
实际:\(100 + 0 + 15 + 0 = 115\)
T1 100/100 签到题愉快AC
T2 0/100 MLE(可拿65)
T3 15/100 部分分(还可拿20,但是时间不够了)
T4 0/100 部分分写挂(可拿30)
相差甚多!
T1
求0<=i<=n,\(2^I\) 次高位开始最多有多少个连续的0
算是猜结论(?)找规律(?)题,挺对胃口的。
大胆猜测只用保留前几位(毕竟\(2^10000000\)的大小呢),后发现跑的有点慢,遂打了小表。
写了一个多小时,耗时略长。
T2
求交换数列中的两个数后为所有区间价值的最大值
定义一段区间[l, r]的价值为(r-l+1) * min(\(a_l\)⋯\(a_r\))
正解:枚举k,数列中大于k的为1,小于k的为0,问题就转化为交换0-1后最大连续子段。用并查集维护连续子段的左右端点与长度。
场上试图拿下部分分:对于\(<=5000\)的数据存下所有区间的最大、最小、次小值;再枚举所有区间,ans = min(当前区间次小,左右侧区间最大) * 当前区间长度。算空间算错了,long long 占8位!!!512MB存不下5000\(*\) 5000\(*\) 3$*$8的数组,于是痛失65pts
T3
题意就不简单,关键词:小猫过河qwq
正着想非常困难,这时候就要倒着考虑。先按出现时间排序,再二分答案,check可行。
大问题:如何check???
由于已经知道了总用时,所以最后一组猫猫的到达时间贴着总用时肯定是最优的,而且段与段之间连续相接也是最优的,以每组猫猫的出现时间为限,若不管这么放都有组猫猫的出发时间早于出现时间则不可行。否则可行。
很深刻的一道题!
T4
求在第 K 步 (1≤K≤n) 剪掉m号结点的方案数
树上背包ovo
还没来得及补捏,本来DP就菜(逃
update 7.24 18:30
补了T4
大致思路是先计算m子树内的剪法,再计算m到根链上的剪法,通过一些妙妙小式子得出答案
得出结论:DP急需版本加强

浙公网安备 33010602011771号