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
字符串处理+最长路。

posted @ 2018-09-07 00:08  GerynOhenz  阅读(229)  评论(0编辑  收藏  举报