T1:
有N个瓶子,每个瓶子中有ai颗糖,A与B每次可选择将ai变为ai+1或k*ai,要求操作后数量不得超过bi
求先后手必胜
想起前两天一道结论型的博弈题,当时恶补了一下SG函数
当然对今天的解题提供的帮助仅限打表
观察了一阵子没什么想法,弃掉了
没看到子任务数据范围,放过了bi<ai*ki的8分
后来发现可以找规律
将n/k+1~n分成一段,(n/k)/k+1~n/k分成一段·····
k为奇数时,每段最多一个2,且必定出现在结尾两个数中,倒数第三个数开始与非2的那个数相反,然后0/1循环
为偶数时,每段有且仅有两种数,并循环
可以用三(2)个数表示一段数,然后递归即可,每组都是log的
数学归纳法应该可以证明,稍微想了想偶数的情况是很好证的
T2:
给出参数x%,若第一次没暴击,第二次概率加倍,第i次是第一次概率i倍,100%以上时必定暴击,暴击后概率重置
求砍了10^1000000刀后期望暴击刀数除以10^1000000的结果,误差不超过0.01
手算了一下三刀与四刀的期望差,发觉差值还挺大,估计在n足够大后会变得很小
然而并没有去打暴力
赛后得知,大约10^6次后差就变得很小了,直接以此为答案,据peppa pig同学的说法,保留两位轻松过
可以用频率估计概率,算出期望多少刀暴击一次后,设此为ans,答案显然为1/ans
由于x为正整数,不超过100,很快可以得出答案
恐怕是最水的一题了
T3:
给出n个复数,每次区间乘或修改,或查询区间有多少个质数,复数形式a+bi
若b为0,a在±5000内,超过此的数一定为两数相乘,则不可能为质数
可以只记录有可能为质数的数,根据模长辐角与一些奇妙的性质(不会),将一些操作转化为区间赋0,记录一些小标记,即可用线段树解决
我觉得这应该看得出来我还没搞懂这道题
T4:
有一个 n × n 的棋盘,初始有些地方有棋子。每次行动时,需要在棋盘上找到一个 k × k 的正方形,使得上面没有任何一个棋子。如果无法找到,
则她就输掉了这个游戏。然后,她需要在棋盘任意一个没有棋子的地方放上一个棋子,不需要保证这个棋子在 k × k 的正方形中。小 c 先手,问谁有必胜策略
假设初始时没有正方形,则后手胜
若初始时有正方形,但没有两个或以上的不相交的正方形,则先手胜
若初始时有至少两个不相交的正方形,则依据空格子数可以推先后手必胜
证明显然,谁先使局上只剩一个正方形,谁就输了
前缀和处理,判断一下是否有至少两个正方形即可