版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
题号 | 标题 | 做法 |
---|---|---|
A | Namomo Subsequence | DP |
B | Rectangle Flip 2 | |
C | Random Shuffle | Gauss 消元 |
D | City Brain | 最短路 + 三分 |
E | Tube Master III | |
F | Rooks | (签到) |
G | Prof. Pang's sequence | |
H | Prof. Pang Earning Aus | |
I | Plants vs Zombies | 二分 |
J | Circle | 计算几何 |
K | Allin | 模拟 |
L | Square | 数学 (签到) |
M | Fillomino | 构造 |
{% pdf /archives/icpc-aecf2020/problems.pdf 600px %}
统计给定字符串 $s$ 中形如 ABCDCD
的子串个数
{% icodeweb blog lang:cpp icpc-aecf2020/A.cpp %}
给定 $n\times m$ 的网格, 有若干次操作, 每次操作均为删去一个格子并询问剩下个格子构成多少个矩形
{% icodeweb blog lang:cpp icpc-aecf2020/B.cpp %}
根据 shuffle
后的数组来计算出随机数种子
{% icodeweb blog lang:cpp icpc-aecf2020/C.cpp %}
给定一个边权为 1 的简单无向图, 可以选择若干条边, 将第 $i$ 的选择的边的权值变为 $\frac{1}{a_i}$, 其中 $a_i$ 为正整数, 可任意选取, 只需保证 $\sum a_i=k$, 问对两对给定的起讫点的最短路和的最小值
{% icodeweb blog lang:cpp icpc-aecf2020/D.cpp %}
Slitherlink, 连边时有代价, 问最小代价
{% icodeweb blog lang:cpp icpc-aecf2020/E.cpp %}
在 $n\times m$ 的网格上放若干 Rooks, 一对 Rooks 会相互攻击当且仅当
问哪些 Rooks 会被攻击
{% icodeweb blog lang:cpp icpc-aecf2020/F.cpp %}
给定数列 ${a_n}$, 若干次询问, 每次询问一段区间中 数的种类为奇数 的子区间个数
{% icodeweb blog lang:cpp icpc-aecf2020/G.cpp %}
有三种物品 $A$, $B$, $C$, $B$ 和 $C$ 最多分别有 $n_b$, $nc$ 个, 每次交易可以用一个物品 $i$ 换取 $k{ij}$ 个物品 $j$, ($i,j=A,B,C$, $i\ne j$), 初始只有 1 个 $A$, 问经过若干次交易后最多可获得多少个 $A$
{% icodeweb blog lang:cpp icpc-aecf2020/H.cpp %}
有 $n$ 个僵尸, 第 $i$ 个僵尸会在 $t_i$ s 时出现在第 0 格, 每秒所有存活的僵尸均向前移动 $V$ 格, 受到经过的这 $V$ 格 (不含起始点) 中所有水草的攻击, 之后受到前方的豌豆攻击 (已死亡的僵尸不会受到攻击), 问每个僵尸会在什么时候死亡 (血量不超过 0)
二分
{% icodeweb blog lang:cpp icpc-aecf2020/I.cpp %}
计算以 $r$ 为半径, 能覆盖住给定凸包的圆的圆心构成的面积
显然是以凸包顶点为圆心, $r$ 为半径的圆的面积交
{% icodeweb blog lang:cpp icpc-aecf2020/J.cpp %}
德州扑克, 问是否必胜
{% icodeweb blog lang:cpp icpc-aecf2020/K.cpp %}
对给定的数列 ${an}$ 求 $\prod{i=1}^nt_i$ 的最小值, 其中 $t_iait{i+1}a_{i+1}$, $\forall i=1,2,...,n-1$
考虑单个素因子 $p$, 设 $p^{\alpha_i}\mid a_i$, $p^{\alpha_i+1}\mid a_i$, 则答案显然为
$$ p^{\min\left{n-\sum_{i=1}^n(\alphai\bmod 2),\sum{i=1}^n(\alpha_i\bmod 2)\right}} $$
然后对每个素因子的答案乘起来就行了
$O(n\log^2{m})$, 其中 $m$ 为 ${a_n}$ 的最大值
{% icodeweb blog lang:cpp icpc-aecf2020/L.cpp %}
给定 $n\times m$ 的循环网格, 要求将网格划分成三个给定大小连通块, 且连通块必须包含指定的一个格子
{% icodeweb blog lang:cpp icpc-aecf2020/M.cpp %}