CODEFORCES掉RATING记 #3

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值