传送门:https://atcoder.jp/contests/abc185/tasks
A - ABC Preparation 签到
取4个数中最小的一个。
Code
1 | # |
B - Smartphone Addiction 模拟
暴力模拟,只要中中途中电量<0,直接输出No。 注意最后一次完成后回家的那一段。
Code
1 | # |
C - Duodecim Ferra 排列组合
简单推导一波$ans=C_{n-1}^{11}$
注意会爆long long,所以我选择Java大数。
Code
1 | import java.io.*; |
D - Stamp 思维
找每两个都涂了颜色区间的最小值,然后计算贡献。 注意m=0时直接输出1,因为1次就可以涂完。
Code
1 | # |
E - Sequence Matching 线性dp
有两个数组a和b,长度分别为n和m,求解删掉x个数后,a数组和b数组不同数的个数y,输出x+y。 考虑dp,dp[i][j]表示a数组选到了i个,b数组选到了第j个的x+y答案。
所以我们有以下四种状态转移:
- 选择删掉$a_i$,保留b_j$,$f[i][j] = min(f[i][j], f[i - 1][j] + 1)$
- 选择保留$a_i$,删掉b_j$,$f[i][j] = min(f[i][j], f[i][j - 1] + 1)$
- 选择保留$a_i$,保留b_j$,$f[i][j] = min(f[i][j], f[i - 1][j - 1])$
- 选择删掉$a_i$,保留b_j$,$f[i][j] = min(f[i][j], f[i - 1][j - 1] + 1)$
注意dp数组的初始化。
Code
1 | # |
F - Range Xor Query 线段树
一道单点修改,维护区间异或和的裸线段树。
Code
1 | # |
这一场非常友好,我很喜欢。
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2020/12/20/atcoder-beginner-contest-185-af/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!