- Suits
- Blocks
- Shawarma Tent
- Portals
- Common Number
Suits
\[ Time Limit: 1 s\quad Memory Limit: 256 MB \]
直接计算即可。
view
#include
Blocks
\[ Time Limit: 2 s\quad Memory Limit: 256 MB \]
最后肯定全是 \(W\) 或者全是 \(B\) 的,那么直接暴力扫两遍就可以了。
view
#include
Shawarma Tent
\[ Time Limit: 1 s\quad Memory Limit: 256 MB \]
假设学校处于 \((sx, sy)\) 位置,可以看成 \((sx, sy)\) 为原点,其他学生到这里的最近距离,那么容易发现,最好的一定可以选成 \((sx-1, sy)、(sx+1, sy)、(sx, sy-1)、(sx, sy+1)\) 这四个之一,所以只要暴力处理这四个点在不在每个学生的最短路上即可。
view
#include
Portals
\[ Time Limit: 2 s\quad Memory Limit: 256 MB \]
对于一个 \(v\) 点,如果有多条 \(u->v\),那么我完全可以到最大的 \(u\) 的时候在派士兵过来,这样做一定不会使结果更劣,并且能够保证尽量占领多的城市。
那么用 \(dp[i][j]\) 表示目前的到达第 \(i\) 个城市,手上有 \(j\) 个士兵时,可以获得的最大价值。
贪心处理 \(j\),如果有多个城市的最大的 \(u\) 为 \(i\),既然每个城市都只需派一个人,那么我肯定先派人去可以获得价值大的城市。
view
#include
Common Number
\[ Time Limit: 2 s\quad Memory Limit: 256 MB \]
对于一个数 \(x\)
- \(x\) 为偶数,那么它可以通过 \(x\) 得来,然后就是\(2*x、2*x+1\)。
- \(x\) 为奇数,那么它可以通过 \(x、x+1\) 得来,然后就是 \(2*x、2*x+1、2*x+2、2*x+3\)。
当 \(x\) 的奇偶性相同时,显然对于同一个上届,\(x\) 越小,满足条件的数字越多,那么就可以对 \(x\) 奇偶然后二分答案,最后取两者较大值。
view
#include