| solved | A | B | C | D | E | F | G | H | I | J | K | L | M |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 7 / 13 | Ø | · | · | · | O | Ø | · | Ø | · | · | O | O | Ø |
- O:比赛时通过
- Ø:赛后通过
- !:比赛时尝试了未通过
- ·:比赛时未尝试
A - Ah, It’s Yesterday Once More
solved by Tryna.(-)
题意: 构造一个地图去年南京的题,率达到%则算.
思路: 构造的原则是使路尽可能地长,也就是尽可能使多。
AC代码
1 |
|
E - Evil Coordinate
solved by all. 3:21(+3)
题意: 二维整点平面,起点在,给你行走路径和不能经过的点,问你能否对原行走路径进行排列,使其绕过不能经过的点。
思路: 终点或者起点与坏点重合的情况下一定不行。然后我们分类讨论一下坏点与分别与终点和起点的横纵坐标有一个重合的情况。
AC代码
1 |
|
F - Fireworks
solved by Tryna.(-)
题意: 做每个烟花要花的时间,放掉所有的烟花要花的时间,每个烟花有的概率,只有当出现了的烟花才会去休息。问花费的最少期望时间是多少。
思路: 每次放掉所有烟花可以看成是一个事件,所以这个问题可以转化为一直重复这个事件,直到某次事件出现了的烟花。所以这就变成了一个几何分布,所以假设每次事件一共做了个烟花,那么至少有一个烟花概率就是, 那么期望就是,那么再乘上每次花费的时间,就是期望时间,通过打表可以发现这个函数是一个凹函数,故可以三分答案。
AC代码
1 |
|
H - Harmonious Rectangle
solved by Tryna.(-)
题意: 定义完美矩形为相邻的两个顶点为一样的颜色,同时另外两个相邻的点也为一样的颜色。一共有三种颜色可以染,给出和的范围,求存在完美矩形的方案数。
题解: 先这么想,比如这两列
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
我们一共有三种颜色,那么只有9种染法
1 1 1 2 2 2 3 3 3
1 2 3 1 2 3 1 2 3
所以对于上面两列,根据抽屉原理,必定存在完美矩形
根据这个结论我们就可以将结果分为两类,
- 或大于9,答案就是
- 对于其他情况我们可以暴搜打表求出答案。
打表
1 |
|
AC代码
1 |
|
K - K Co-prime Permutation
solved by all.0:16(+)
题意: 给出和,构造出一个的全排列使得刚好有个为1。
思路: 对于任意两个相邻的数它们的为1,运用这个定理然后分奇偶判断一下就好了。
AC代码
1 |
|
L - Let’s Play Curling
solved by Sstee1XD & Tryna. 0:59(+1)
题意: 给出两个整点序列。对于一个实数点来说,这个点能获得的分数为存在多少个,使得到这个点的距离比中所有点到这个点的距离都要小。问最大得分是多少。
思路: 很容易想到,对和分别从小到大排序后,值在 ~之间的数量,都可以记作一次的得分。我们可以通过二分求这个数量。然后注意特判首尾的情况。
AC代码
1 |
|
M - Monster Hunter
solved by lllllan. (-)
题意: 一棵树上每个节点都有对应的权值,计算这棵树的总权值的话,如果一个节点有父节点,则该节点记两倍的权值。求分别从树上删除到个节点,树上能计算到的最小权值和。
题解: 计算权值的关键点在于【存在父节点,则该节点记两倍的权值】,想要求最小的权值和,也就是说需要尽可能多地删除一些权值贡献比较大的点。
贪心? 训练的时候的第一反应就是贪心,删除1到n个点,每次都删除当前权值贡献最大的点,删到最后,就求出全部答案。 || 选取1到n个点,每次选取当前权值贡献最小的点,选到最后即为全部答案。但是,这道题不能贪心。
【懒得画图解释为什么不能贪心了,自己思考一下好了】
既然这样,就依靠树形DP来求解。
比较容易想到定义
dp[i][j]来表示以节点i为根节点的子树下选取j个节点之后获得的最小权值和。
但是在状态转移的时候,有直接父子关系的两个节点的权值贡献是会相互影响的。所以应当定义三维的dp,多一维记录该根节点是否选取。
其实确定好三维DP的定义之后,状态转移还是比较明确的,不再赘述。
AC代码
1 |
|