更好的阅读体验http://www.abmcar.top/archives/nyist20%E7%BA%A7%E6%8E%92%E4%BD%8D%E8%B5%9B%E7%AC%AC%E4%BA%8C%E5%9C%BA%E5%A4%8D%E7%9B%98
A - 涂色 AtCoder - agc004_a
sb题 看长宽高是否能被2整除,是则能平均分,否则差一层
唯一的问题就是用wth/maxL会wa,猜测可能是爆ll了
B - 旅游 LibreOJ - 10078
占坑待补
C - 序列 POJ - 3061
尺取板子题
E - 模拟 POJ - 1208
按照题意模拟即可
我认为需要注意的
- 当a和b在同一堆上时跳过
- 可以而外增加一堆作为中转
F - 橘子 POJ - 3321
dfs序+树状数组的板子(大概
G - 机器 CodeForces - 1296C
可以把LR当作+1 -1 把UD当成+1e6 -1e6
计算前缀和,判断该数是否在之前出现过,可以采用map实现
H - 签到 CodeForces - 1343B
签到构造
I - 房子 LightOJ - 1047
用一个二维的数组进行dp
void work()
{
cin >> n;
for (int i = 1; i <= n; i++)
cin >> costR[i] >> costG[i] >> costB[i];
map<int, int> F[4];
F[1][1] = costR[1];
F[2][1] = costG[1];
F[3][1] = costB[1];
for (int i = 2; i <= n; i++)
{
F[1][i] = min(F[2][i - 1], F[3][i - 1]) + costR[i];
F[2][i] = min(F[1][i - 1], F[3][i - 1]) + costG[i];
F[3][i] = min(F[2][i - 1], F[1][i - 1]) + costB[i];
}
cout << "Case " << ++cnt << ": ";
cout << min(F[1][n],min(F[2][n],F[3][n])) << Endl;
}
J - 暴力 计蒜客 - T1217
sb暴力,但是他没说n*m的范围导致一直没敢交
(可恶 下次直接莽一发再说
L - 游戏 CodeForces - 1327C
先把所有点挪到左上角,再S型走一遍,总次数为n+m+n*m-1
需要注意细节处理
(开始以为棋子不能重复也不会掉下去,还以为是什么奇奇怪怪的方法