08-10 NOIP模拟测试16

如果有修改,一定要考虑全这个修改对之前的操作的影响!

T1 mxdt没到n,后来想到,但只改了二分里的,没改特判上的,然后就死了。。。

A. Blue

一开始想到了网络流,类似蜥蜴那道题,对每个石子拆点,跑最大流。然后看到数据范围发现不可做。

后来觉得先把部分分拿到。同时也在其中得到了思路上的启发。

对于m==1,直接算每两块的间隔,看是否存在一个间隔>d,引向性质二。

对于n==L-1,最优的跳法显然是把空间平均给每只蛤。任何一只蛤少跳一块,都会让另一只蛤多跳一块,从而使答案不优。引向性质一and性质二。

当你想直逼正解的时候,不要太着急,也许部分分的思考能点开你的思路!

  • 对于每一轮跳跃之间,每个青蛙每轮跳跃后的相对位置不变。
  • 最优解一定存在一种方案不会浪费任何一个石子。多经过石子不会让答案变差。

之后看到答案有单调性,于是开始想二分。

验证也很自然,O(n)扫mid只青蛙每次跳跃mid块(性质一)的所有路线(性质二)是否都合法,即a[i]-a[i-mid]>=d都成立。

此时实际上所有青蛙的路线是一起验证的。如果成立,任意一只青蛙都能找到自己的合法路线而不干扰其他。

扫描二维码关注公众号,回复: 6998138 查看本文章

这题做法挺多的:比如二分套贪心(上面O(nlogm)),单调指针维护青蛙群(wd lyl) O(n),平衡树贪心最大合法后继暴跳(skyh) O(mlogn)。

B. Weed

C. Drink

猜你喜欢

转载自www.cnblogs.com/hzoi-yzh/p/11330973.html