首页 > 其他 > 详细

CODEFORCES掉RATING记 #3

时间:2018-03-05 19:55:44      阅读:107      评论:0      收藏:0      [点我收藏+]

  比赛:Codeforces Round #426 (Div. 2)
  时间:2017.7.30晚

  开场先看AB
  A:给你两个方向,和旋转次数(每次旋转90度),问你旋转方向是什么
  B:给你一个字符串,问你是否存在一个位置使得它前面后面都出现过的字母\(>\)k个
  前两题比较简单
  C:两个人在玩一个游戏。初始时两个人的分数都是\(1\)。每次一个人的分数\(\times k\),另一个人的分数\(\times k^2\)。给你\(n\)个结果问有没有可能出现这个结果。
  pollard rho暴力分解质因数
  可以发现\(k\)是质数的情况与原题是等价的。
  设两个人的分数为\(x,y\),设\(a=gcd(x,y),b=\frac{xy}{a^2}\)
  如果\(a\)\(b\)的倍数而且\(\frac{a}{b}\)只有三次项那么结果是合法的
  \(1\)~\(1000\)中只有\(168\)个质数,枚举质数暴力除即可。但是因为除法很慢所以会被卡常
  后来我看到一个简单的做法,直接把\(x\times y\)开三次方,然后判断是不是\(x\)\(y\)的因子。
  D:设当前这个数(\(a_i\))上一次出现的位置为\(j\),那么切割\(j\)~\(i-1\)这段都会产生\(1\)的贡献。用线段树维护
  时间复杂度:\(O(nk\logn)\)
  E:有一种奇怪的做法:先枚举\(0\text{~}9\)各出现几次,再用搜索判断是否存在这类数。zjt大爷说时间复杂度没有保证,但是我本机极限数据只跑了0.6秒。时间复杂度还是有保证的,大概是\(O(C^9_{26})\)

CODEFORCES掉RATING记 #3

原文:https://www.cnblogs.com/ywwyww/p/8510726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!