NOIP 2016 简要题解
D1T1
直接根据题意模拟即可。
D1T2
咕咕咕。
D1T3
记 \(dp_{i,j,0/1}\) 表示前 \(i\) 个课,选了 \(j\) 个课,第 \(i\) 个课换不换的最小期望。
floyd 预处理两点之间的最短路,转移显然。
D2T1
数据范围很小,考虑 \(\mathcal O(n^2)\) 求出组合数。
求个二维前缀和就做完了。
D2T2
发现切完之后其他蚯蚓要全部加 q,不好处理,考虑变成切的蚯蚓减去 q。
假设先切长度为 \(a\) 的蚯蚓,那么切出来是 \(\lfloor pa \rfloor\) 和 \(x-\lfloor px \rfloor\)。
第二只切长度为 \(b\) 的蚯蚓,\(b<a\),那么 \(\lfloor pb \rfloor < \lfloor pa \rfloor\),\(b-\lfloor pb \rfloor < a-\lfloor pa \rfloor\)。
那么考虑搞三个队列,第一个存原本蚯蚓长度,第二个存 \(\lfloor px \rfloor\),第三个存 \(x-\lfloor px \rfloor\)。
那么每一秒将三个队列的队首进行比较,取出最大的,从队首扔掉,然后将切完的分别加入到第二和第三个队列队尾。
时间复杂度 \(\mathcal O(n+m)\)。
D2T3
咕咕咕