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

CODEFORCES掉RATING记 #4

时间:2018-03-05 19:32:56      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:距离   表示   不同   lin   自动机   进制   相同   gpo   tin   

  比赛:Codeforces Round #427 (Div. 2)
  时间:2017.7.31晚

  开场发现有6道题,都是水题(可能我只会做水题)
  A:比较\(2t_1+sv_1\)\(2t_2+sv_2\)的大小
  B:给你一个数字串,要求所有数字的和\(\geq k\),问你最少要改多少个数字。从\(0\)\(9\)枚举,每次把当前数字改成\(9\)
  C:给你\(n\)个星星,亮度呈周期性变化(周期相同且\(\leq11\)),每次问你一个矩形内的星星在时刻\(t\)的亮度和是多少。就出每个星星在每一个时刻的位置,用前缀和维护
  D:一个关于回文串的题:一个串是\(1-\)回文串当且仅当这个串是回文串。一个串是\(k-\)回文串当且仅当这个串的前一半与后一半相同且前一半是\((k-1)-\)回文串。用回文自动机维护不超过当前串长一半的最长回文后缀。
  E:一道交互题。有一个序列,长度为n,有\(n-2\)个元素是\(x\),剩下两个是\(y\)。你可以询问一个子序列的异或和,要你找出哪两个位置是\(y\)
  我们考虑两个\(y\)的下标(设为\(a,b\)),那么\(a,b\)用二进制表示一定有至少一位不同。我们从大到小枚举二进制位\(i\),询问所有第\(i\)\(1\)的二进制位,直到其中有一个\(y\),设这位为\(k\)。然后从第\(k-1\)位开始从大到小枚举二进制位\(i\),就可以求出这两个答案第\(i\)位分别是什么。再从\(k+1\)位开始从小到大枚举二进制位\(i\),就可以求出这两个答案的第\(i\)位是什么。
  其中只有第\(k\)位询问了一次,其他位都询问了两次,所以询问次数是\(2\lceil log n \rceil-1\)
  时间复杂度:\(O(nlogn)\)
  原题中\(n=1000\),询问次数\(\leq19\)
  F:给你一个\(n\)个点\(n\)条边的连通图,问你删去一条边(你选)后两点之间最短路的距离的最大值。直接数据结构+DP乱搞。
  最后有\(6\)个人AK了

CODEFORCES掉RATING记 #4

标签:距离   表示   不同   lin   自动机   进制   相同   gpo   tin   

原文地址:https://www.cnblogs.com/ywwyww/p/8510718.html

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