头像
Hushnow_
发布于 2023-04-17 09:02
+ 关注

题解

难度分布

EASY:

  • B. 在SCPC之旅寻求答案是否忘记了什么?
  • L. LRU

MID-EASY:

  • C. 你还要我怎样
  • G. 还需怎样才能满足你
  • A. 简单题

MID:

  • H. 小白要写小白题
  • F. 还有多久才能拥抱你
  • J. CSGO
  • M. 森林

MID-HARD:

  • K. 特种蛋的必修之路
  • D. S CPC
  • E. 序列的裂变

HARD:

  • I. 我的心意你知几分

以校内一血时间排序

B. 在SCPC之旅寻求答案是否忘记了什么?

<font size=2>first blood 3 min by 方可</font>

签到。遍历一遍字符串判断即可。

A. 简单题

<font size=2>first blood 4 min by 林佳露</font>

记录每一个字母的出现次数,将每一个字母出现的次数/2*2相加,如果有出现了奇数次的字母则答案还需要再加1。

N. HH爱吃肉进阶版

<font size=2>first blood 10 min by 方可</font>

HH爱吃肉进阶版题解

1、如果不更换,那么HH吃到肉的概率为\frac{1}{n}

2、如果更换

① 假设HH最开始就选中,那么在n个盒子中一次性选中中奖的概率为\frac{1}{n}。当他更换后中奖的概率为0,所以他更换后吃到肉的概率为:\frac{1}{n}\times0=0

② 假设HH最开始没有选中,那么更换盒子有\frac{n-1}{n}种选法。当小K帮他排除m个错误选项后,肉就在剩下的n-m-1个盒子中,那么选择其中一个盒子能吃到肉的概率是\frac{1}{n-m-1},所以他更换后吃到肉的概率为:\frac{n-1}{n}\times\frac{1}{n-m-1}=\frac{n-1}{n(n-m-1)}

所以,如果更换,吃到肉的概率为:\frac{1}{n}\times0+\frac{n-1}{n}\times\frac{1}{n-m-1}=\frac{n-1}{n(n-m-1)}

所以综上所述,还是更换后吃到肉的概率大

C. 你还要我怎样

<font size=2>first blood 14 min by 刘明水</font>

将y转化为二进制,位上为1则使用魔法2,为1则使用魔法1

G. 还需怎样才能满足你

<font size=2>first blood 25 min by 刘明水</font>

因要求n个不同正整数,所以最小的序列为1,2,3,...,(n-1),n,故先计算1+2+...+(n-1)+n的值,如果大于k,则表明无法得到所需序列,输出-1,若小于等于k,则先输出1~(n-1),并计算k-(1+2+...+(n-2)+(n-1)),为所需最后一个数

D. S CPC

<font size=2>first blood 48 min by 向冠南</font>

先手必胜点C__ __C

→总长度大于等于7,先手抢必胜点;此基础上,当(n-5)为奇数时,先手可以抢到必胜点

→总长度大于(7+7+1),后手抢必胜点;此基础上,当n为偶数时,后手可以抢到必胜点

L. LRU

<font size=2>first blood 85 min by 王鑫</font>

使用队列(其实不用也可以)模拟即可

H. 小白要写小白题

<font size=2>first blood 101 min by 连煜博</font>

因为题目是求怎样选择过题顺序才能获得最大得分,题目数据量又非常小,所以可以通过暴力枚举全排列来解决。

J. CSGO

<font size=2>first blood 156 min by 向冠南</font>

本题为二分题,二分需要买的k件饰品然后,check函数写法为按照题意求出每件手续费,然后加上每件原价就是每件商品的总价,对所有饰品总价进行排序,排序完前k个相加判断是否大于m即可。

E. 序列的裂变

<font size=2>first blood 181 min by 方可</font>

以如下数列为例

1 1 2 2 3 4 4 5 5

可以注意第 i \times 2-1 个数和第 i \times 2 个数,当没遇到单数时,比如第1个数(1)和第2个数(1)、第3个数(2)和第4个数(2)都相等,而遇到单数3后,第5个数(3)和第6个数(4)不一样,而后面的数都是这个性质。

所以我们可以二分来查找这个单数的位置。

M. 森林

<font size=2>first blood 181 min by 方可</font>

模拟由于野人无法对初始状态进行破坏,因此开始的时候应该先击杀野人,并且在最后一轮t秒击杀野人的时候,判断是否有多余的成员可以去收集材料。并且由于击杀野人有t秒,所以可能中途收集完材料并且可以开始建造。这样就会有在击杀野人过程中就能够建造完成,以及建造不完成,击杀完之后全体一起建造或者收集材料的情况。

F. 还有多久才能拥抱你

算法:BFS。

暴力BFS:先用原图跑一遍bfs,如果可以到达(n,m)点,就直接输出答案;否则将地图进行”镜像“扩展,然后再跑一次bfs,如果仍不能到达(n,2m),则再进行最后一次地图的拓展,去用bfs跑(2n,2m)点,最后有解则直接输出最短距离,否则输出-1。

优化BFS:直接建立2n * 2m的地图,如果队列中已经含有(n,m)、(n,2m)、(2n,2m)这三个点之一,即可直接输出答案,否则跑完一遍无解则输出-1。

I. 我的心意你知几分

将每个节点看作一个多项式,第i+1项为a_ix^i表示当前礼物数为i的方法种类为a_i中,使用拓扑排序进行遍历,到下一个节点时,下一个节点乘以当前节点前w+1项,w为边权,最后节点n的第k+1项的系数即为答案

K. 特种蛋的必修之路

由于所有传送门出现的时间间隔相同,所以传送门之间出现的时间差是静态不变的(如样例1中,穿过传送门1后,永远最少只需等待99秒即可等到传送门2出现),预处理穿过前n个传送门的最短时间前缀和。

n ≤ k时,使用钩子越过所有销毁即可。

n > k时,遍历在所有门处使用钩子的情况即可获得最小时间。

全部评论

(2) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐