A. IP Checking(LightOJ - 1354)
送分题?
- 不会有人连二进制转换都不会吧
参考代码:
1 |
|
B. Alexey and Train(Codeforces - 1501A)
阅读理解签到题
- 每次都是 $2$ 选 $1$,要不等到 $b_i$ ,要不就等待 $ \lceil \dfrac{b_i-a_i}{2} \rceil$ 的时间
参考代码:
1 |
|
C. C+=(Codeforces - 1368A)
签到题
每次将小的加上大的,易证这样操作一定是最优的
每次一个数一定至少会翻倍,所以暴力模拟的复杂度为 $\log n$,直接模拟即可
参考代码:
1 |
|
D. Max and Mex(Codeforces - 1496B)
分类讨论
- 如果 $mex(a)>max(a)$,那么每一次都会添加一个 $mex(a)$,之后 $mex(a)$ 和 $max(a)$ 都会加1,所以答案是 $ n+k$ 。
- 否则$mex(a)$ 和 $max(a)$ 永远不变,答案最多只会加$1$。
参考代码:
1 |
|
E. AND 0, Sum Big(Codeforces - 1514B)
考察对位运算的理解,沾点高中数学
- 由于 $and$ 运算对于每一个二进制位都是独立的,所以我们每一位都分开考虑。注意这是大部分位运算题目的解题思想
- $and$ 为 $0$,说明这 $n$ 个数对于单独的一个二进制位来说,至少有一个是 $0$
- 要求和最大,说明对于一个二进制位,只有一个数是$0$
- 利用乘法原理,容易得出答案
参考代码:
1 |
|
F. Constanze’s Machine(Codeforces - 1195C)
听说有同学不喜欢读题也不喜欢DP?
- 考虑动态规划:$f[i][0/1/2]$ 表示选取了编号在 $i$ 及以前的球员,所能得到的身高总和最大值
- 其中,第二维的 $0$ 表示编号为 $i$ 的球员一个都不选;$1$ 表示只选上面一个;$2$ 表示只选下面一个。(显然没有上下都选的情况)
- 状态转移方程:
- $f[i][0]=max(f[i−1][0],f[i−1][1],f[i−1][2])$
- $f[i][1]=max(f[i−1][0],f[i−1][2])+h[i][1]$
- $f[i][2]=max(f[i−1][0],f[i−1][1])+h[i][2]$
参考代码:
1 |
|
G. Pair of Topics(Codeforces - 1324D)
解法不唯一,给出二分解法
- 设 $c[i]=a[i]-b[i]$,并将其按照从小到大排序
- 对于每个 $i$,二分寻找满足条件最小的 $j$,统计答案
- 答案要开 $long long$
参考代码:
1 |
|
H. Fox And Two Dots(Codeforces - 510B)
题目中的手机游戏链接:https://www.taptap.com/app/2221?hreflang=zh_CN
- 题意很简单,连通块找环,注意细节即可
- $DFS$ 或 $BFS$ 均可,这里给出 $DFS$ 写法
参考代码:
1 |
|