比赛链接
VK Cup 2021 - Elimination (Engine)
1. A. Binary Decimal
1.1. 题意
给你一个十进制数,你要把它拆成多个只由0和1组成的十进制数之和,问最少拆几个。
1.2. 做法
答案就是十进制数每个位上的数中的最大值
1.3. 代码
1 |
|
2. B. Putting Plates
2.1. 题意
告诉你矩阵的长和宽,你要在矩阵的边界上填0或者1,不允许出现两个1相邻(上下左右以及对角一共八个方向)
2.2. 做法
贪心顺时针填1,能填就填,这个贪心是对的
2.3. 代码
1 |
|
3. C. Pursuit
3.1. 题意
两个人比n场,每个人的总分取各自最大的$n+\lfloor \frac{n}{4}\rfloor$个得分求和。
你现在知道了前k场比赛的结果,问你至少还要比多少场,你才有可能赢过对方(可以假设你后面全部得满分,对面得0分)
3.2. 题解
二分场数,自己取100分,对面取0分
3.3. 代码
1 |
|
4. D. Secret Santa
4.1. 题意
给你一个长度为n的数组a,每个数都在1到n之间(包括1和n),你需要寻找一个完全错排b,使得尽可能多的i
满足a[i]=b[i]
4.2. 做法
贪心一遍,尽可能多的匹配,这是答案的上届,可能会剩下一些位置没有分配值,如果超过1个位置,则可以分配成功
如果只剩下一个位置pos了,且他的值为x,那就看b中哪个位置现在的值为x,把它修改为pos,然后b[pos]=x
4.3. 代码
1 |
|