码迷,mamicode.com
首页 > 其他好文 > 详细

记一次神奇的codeforces

时间:2019-09-21 19:26:57      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:就是   span   最小化   需要   一起   路由器   最小   路由   --   

  今天有一场codeforces的div3,时间挺合适,于是就想打。结果发现rating超过1600就不能报名。虽然shzr好久不打CF了而且很菜,但是毕竟还是到了1600的,于是和ZUTTER_一起用原来的一个小号:wzxakioi参加了比赛;

  然而div3是真的简单,虽然网很卡,但是终究还是AK了,找了一个算rating的插件算了一下,发现这一场可以上254...??? 比我的大号都高了...

  A:十分简单,扫一遍,需要改就改,没了;

  B:从大到小,显然是最优的,如果不放心,就用交换法证一下也行;

  C:题意有点模糊,然而其实指的就是普通的覆盖,不要管什么“不严格在里面”就好了。算一下黑色覆盖的面积和,如果等于白色就不行,否则就可以;

  D:先排个序,由题意可以得到 $a_1+b_1z=a_2+b_2z=...=a_n+b_nz$ ,考虑减掉 $a_1$ ,整个方程除以 $z$ ,发现 $a_i-a_1$ 必须是 $z$ 的倍数,同时,$z$ 越大,$y$ 越小,所以 $z$ 对于所有的 $a_i-a_1$ 取个 $gcd$ 就好了。然后你会发现 $b_1\geq b_2\geq ...\geq b_n$ ,且只要确定了一个 $b_i$ ,其它的就都确定了,因为要最小化 $\sum b_i$ 直接设 $b_n=0$ 就可以了;

  E:先二分,找到最后一个完整段的结尾;再二分,找到最后一个完整的数;最后输出正确的位;

  F:两个转移:$dp[i]=dp[i-1]+i$; 如果 $i$ 这个位置可以放路由器,那么? $dp[k]=dp[ \max(0,i-k-1) ]+i,k\in[\max(1,i-k),max(i+k,n)]$ ,这两个操作用线段树可以很方便地实现。

---shzr

记一次神奇的codeforces

标签:就是   span   最小化   需要   一起   路由器   最小   路由   --   

原文地址:https://www.cnblogs.com/shzr/p/11563813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!