[CF]Round 516

A Make a triangle!

题意:给定三根线段,问最少要延长多少才能拼成一个三角形。

数学题。

B Equations of Mathematical Magic

题意:求$a - (a \oplus b)-x=0 $的非负整数解的个数。

打表发现是\(a\)在二进制下\(1\)的数量。

C Oh Those Palindromes

题意:求字符串\(S\)重新排列后的回文子串的最大数量。

猜想一样的放在一起会最多,然后就对了。

D Labyrinth

题意:给定一个迷宫,有一些障碍,最多只能向左\(x\)次,向右\(y\)次,问能到几个点。

就是一个bfs。注意如果到达一个点的时候比上一次向左或向右的次数更多的话,就要继续入队,但不重复计算答案我就在这被hack了

E Dwarves, Hats and Extrasensory Abilities

题意:交互题,每次输出一个点的坐标,然后读入这个点的坐标的颜色(黑或白),最后输出一条线使得同色的点在这条线的一侧。

我一开始想的是在一个圆弧上二分极角,保证同色的连续就行了,但是,这样的话精度会爆(30次二分)。

UPD:其实不用在圆弧上,直接在一条直线上二分就行,保证直线一边是黑一边是白就可以了。

F Candies for Children

题意:有\(n\)个人围成一个环,从\(l\)开始,每个人拿一个或两个糖,转若干圈后,到\(r\)停止,一共消耗了\(k\)个糖。问最多有多少个人会拿两个糖。

我是转化成求满足\(k\bmod (n+y) \le y\)\(k\bmod (n+y)\le (r-l)\bmod n +1\)的最大的\(y\)。然后就不会了2333

这个题可以分类讨论,用两种不同的方法做(先假定最后一个人不是“sweet tooth”或者是且吃两个糖)

第一种解法是\(O(n^2)\)的,我们把这个圆分成两部分,一部分是\(l..r\)范围的,称为\(X\),剩余的部分称为\(Y\)\(X\)\(Y\)多吃一次糖。我们可以枚举\(X\),\(Y\)中有多少个"sweet tooth",然后验证是否合法。

第二种解法是\(O(k/n)\)的,我们先假设转的圈数\(t>0\),我们发现,\(X\)中的人要么贡献\(t+1\),要么贡献\(2t+2\)\(Y\)中的人要么贡献\(t\),要么贡献\(2t\),我们先假设没有"sweet tooth",然后就会有一个方程\((t+1)a+tb = k-t-|X|\) 枚举圈数\(t\)然后求最大的\(a+b\)就行了。

posted @ 2018-10-14 21:03  wyxwyx  阅读(201)  评论(0编辑  收藏  举报