2013 NEERC

2013 NEERC

Problem A. ASCII Puzzle

题目描述:完成一个拼图。

solution
暴搜,但好像挺难打的,但听说因为题目限制比较多,其实很多奇怪的情况都不存在。

Problem B. Bonus Cards

题目描述:有(n)张票,两种买票方式(A, B),选票流程:每轮决定一张票给谁,(A)方式抽中的概率是(B)方式的两倍。所有票都抽完,或者所有人都有票则选票结束。给出(A, B)方式各有多少人,问你用(A)方式能拿到票的概率以及(B)方式能拿到票的概率。

solution
(f[i][j])表示经过了(i)轮,有(j)个用(A)方式的人已经拿到票的概率。
转移方程:

[f[i+1][j]+=f[i][j]*2*(A-j)/((B-(i-j))+2*(A-j)+2) ]

[f[i+1][j]+=f[i][j]*(B-(i-j))/((B-(i-j))+2*(A-j)+2) ]

更新答案:

[ans+=f[i][j]*2/((B-(i-j))+2*(A-j)+2) ]

(B)方式的也类似。

时间复杂度:(O(n^2))

Problem F. Fraud Busters

solution
模拟。

Problem H. Hack Protection

题目描述:给定一个序列(a_i),求有多少个区间满足区间内的数的异或和等于与的值。

solution
枚举区间左端点(L),然后求出每个二进制位(L)以后最早出现(0)的是哪一位,从小到大排序,设(num=2^{30}),每遇到一个出现(0)的位置,(num)对应二进制位就变成(0),直到下一个出现(0)的位置为止,所有区间的与值都是(num),然后求出这段区间有多少个作为右端点时异或和等于(num)即可,这个可以求异或和的前缀和,然后排一下序,到时候二分就可以求答案了。

时间复杂度:(O(30nlogn))

Problem I. Interactive Interception

题目描述:交互题。已知有一架飞机一开始在数轴([0, p])之间,速度在([0, v])之间,每次可以询问飞机是否在一段区间内,询问后飞机的坐标就会加速度。先需要你在某一时刻能确定飞机的位置。

solution
二分,每次询问可行区间的一半,然后根据得到的结果缩小位置的区间以及速度的区间。
不太会,待更。

Problem J. Join the Conversation

solution
字符串处理+最长路。

原文地址:https://www.cnblogs.com/GerynOhenz/p/9602066.html