暑期集训补题(第一周)

一、第☝️周 

1、SMU Summer 2024 Contest Round 1

Dice and Coin

大致题意:摇一个骰子,骰子上的数字从1-n,然后抛掷一枚硬币,正面朝上分数翻倍,反面则清零,如果分数小于K,继续抛掷硬币,直到分数大于K,求分数能大于K的概率。

本题需要注意的是,投掷骰子后是接着抛掷硬币,直到下一次游戏才投掷骰子。那么,骰子每面朝上的概率为1/n,硬币正面朝上的概率为0.5 。

代码⬇️: 

equeue

大致题意:有一个双端队列,现在进行四种操作:

1.拿走队列最右边👉的元素,队列为空时不取;

2.拿走队列最左边👈的元素,队列为空时不取;

3/4.将手里的某个元素放回队列最左或最右边,为空时不放。 

最多操作K次,求最终手中元素可能的最大和。

本题数据范围较小,考虑直接暴力求解。

代码⬇️:

Sequence Decomposing

大致题意:给定一个数组,将数字涂上各种颜色,对每种颜色的数字,要求i<j,有Ai<Aj。求最少要几种颜色。

本题可以记录每种颜色中的最大值,如果当前数字大于这个最大值,就可以涂上相同颜色,并更新最大值,否则涂上另一个颜色。

代码⬇️:

Integer Cards

大致题意:给定一个数组A,现在能进行M次操作,选择将Bi个A数组中的数修改为Ci,求修改后数组A中元素的最大和。

考虑到用大数换小数的效果肯定比大数换大树的效果更优,所以将C从大到小排序,贪心修改A

代码⬇️:

2、SMU Summer 2024 Contest Round 2、

Consecutive

题目大意:给出一个字符串,在给定区间内找到有多少个成对的字符;

思路:由于这周一直在练二分,所以一眼就直接二分,先记录成对出现字符的下标,然后直接lower_bound查找大于等于给定左区间和右区间的第一个下标,然后右区间减左区间即为答案。

代码👇:

Minimum Width

题目大意:给定一些单词的长度,单词与单词之间有一个空格,单词不能隔行,求最小多少宽度能很好的装下这些单词;

思路:也是二分,二分答案,check函数就是按顺序减去单词长度,如果最后cnt小于等于给定行数就记录答案,缩小右区间。

代码 ↓ :

Sierpinski carpet

题目大意:按要求输出图形。

思路:赛时没有发现递归规律,后来仔细想一下才发现左上角不变,其余各个区域和第一片区域相同即可,中间区域特殊判断。

代码 👇:

 Printing Machine

题目大意:一台打印机,给出n份文件出现在打印机前的时间范围,打印一次打印机需要停顿1微秒,求最多能打印多少份文件。

思路:用优先队列维护文件出现在打印机前的时间,每次判断当前文件出现打印机前的时间,如果与当前时间相等,就放入优先队列,随后判断优先队列出现在打印机前文件的时间范围是否大于当前时间,如果小于就pop,然后判断队列中是否还有文件,有的话ans++,pop掉,然后继续下一次判断,当前时间加一。

代码 👇:

3、SMU Summer 2024 Contest Round 3 

 寻找素数对

思路:先用质数筛找出1e4之内的质数,因为数据范围较小,所以直接暴力判断就行。

 抱歉

思路:简单的数学题,观察即可发现规律。

Nuts

签到题:大于十的数加上大于十的部分就行。

Bowls and Dishes

题目大意:我们有N个盘子,分别编号为1,2,...,N,和M个条件,编号为1,2,...,M。 当A i ​ 和B i ​ 都有(一个或多个)球在上面时,条件i被满足。 有K个人,编号为1,2,...,K。第i个人将在C i ​ 或D i ​ 上放一个球。 最多有多少个条件会被满足? 

思路:赛时思路错了,以为贪心就行,实际需要dfs暴搜。

To3  

题目大意:给定一个正整数N,其中没有任何数字是0。 设k是N中数字的数量。我们希望通过从N中删除至少0个数字和至多k−1个数字,并连接剩余数字而不改变顺序来制作3的倍数。 确定是否有可能以这种方式制作3的倍数。如果可以,找出必须删除的最小数字数以制作这样一个数字。

思路:分类讨论,赛时情况没有考虑完整。

4、2024 暑假友谊赛-热身2

RGB Boxes - AtCoder diverta2019_b - Virtual Judge

题目大意:用N块钱买球,看有多少种方案。

思路:数据较小,暴力即可。 

 4/N - AtCoder tenka1_2017_c - Virtual Judge

题目大意:找到满足N/4=1/h+1/w+1/n的h,w,n

思路:前几发以为暴力能解,没想到被卡了两个点,最后推导一下式子才过😭

AB Substrings - AtCoder diverta2019_c - Virtual Judge

题目大意:用给定字符串拼接,看能组成多少个AB字符串。

思路:这应该可以算是一道数学题吧,前几次公式没推导对,后来改改就过了。大概就是拿出只有前面是B和只有后面是A的和前后都有的拼接两个,再加上原本有的,然后加上前后都有的能拼接c个,最后加上a,b中的min,答案就出来了。

码 ⬇️:

DivRem Number - AtCoder diverta2019_d - Virtual Judge

题目大意:找到1-n中 满足⌊𝑁 / 𝑚⌋ = 𝑁 mod 𝑚 的所有数的和。

思路:规律题,只是打表打错了,一直没看出来,最后在队友的指点下才发现😭😒

5、2024 暑假友谊赛-热身1 

Wall - AtCoder abc079_d - Virtual Judge

题目大意:给出各个数变成其他数的代价,然后求使给出数据全变成1的最小代价。

思路:赛时脑子不清晰,赛后看了别人的代码幡然醒悟,其实 i -> j ,就是 i -> k 的代价加上k -> j的代价,而且范围极小,三层循环就能解决。

 Linear Approximation - AtCoder arc100_a - Virtual Judge

题目大意:找到一个B,使得abs(A1​−(b+1))+abs(A2​−(b+2))+...+abs(AN​−(b+N))最小,输出最小值

思路:一开始思路歪了,一直在想二分,后来仔细想一下,这不纯纯数学题吗,肯定减中位数最小啊!!先记录每个数减去i,然后排序,最后减去中位数相加就是答案。

Minimization - AtCoder arc099_a - Virtual Judge

题目大意:给出一个排列,求出将排列全变成最小值的最小操作次数。

思路:赛时题读假了,没看到是排列,一直以为和之前写过的Problem - E - Codeforces这个一样。其实他是一个排列的话就非常简单了,第一次可以变化k个,之后每次变化k-1个。

代码:

 Brutality - CodeForces 1107C - Virtual Judge

题目大意:游戏机有二十六个键位,给出一串字符再给出每个字符对应伤害,每个键位最多能连续按k次,求最多能造成多少伤害。

赛时一直在死磕C题,没想到G这么简单,这个题用优先队列维护最小值就行了,每次放进优先队列k个值,然后超过k个的就和优先队列维护的最小值比较。比最小值大就pop,再放入当前伤害。最后计算总伤害就行。

6、2024 暑假友谊赛 1

Cooking - AtCoder abc204_d - Virtual Judge

题目大意:

高桥要烹饪𝑁N道名为Dish 1至Dish 𝑁的菜肴。每道Dish 𝑖需要连续使用烤箱𝑇𝑖​分钟。一个烤箱不能同时用于两个或更多菜肴。如果高桥有两个烤箱可用,那么烹饪所有𝑁道菜肴所需的最短时间是多少?假设除使用烤箱外的所有过程所需时间都可以忽略不计。

思路:一开始以为模拟就行,没想到没这么简单,然后往dp方向开始想,猛然发现,他就两个烤箱,也就是说,最优解就是所有时间相加÷2,这就可以类似于一个01背包,用容量为sum÷2的背包去装东西,只不过像第二组测试样例就要用sum减去答案再取最小值。

代码 ⬇️:

2D Plane 2N Points - AtCoder arc092_a - Virtual Judge

题目大意:

在二维平面上,有𝑁个红点和𝑁个蓝点。 第𝑖个红点的坐标为(𝑎𝑖,𝑏𝑖),第𝑖个蓝点的坐标为(𝑐𝑖,𝑑𝑖)​。当一个红点的𝑥坐标小于蓝点的坐标,并且红点的𝑦坐标也小于蓝点的坐标时,红点和蓝点可以组成一个友好对。最多能组成多少个友好对?注意一个点不能属于多个对。

思路:贪心,用红点y尽可能大的点去匹配蓝点,这样就能求得最优解。

Apple - AtCoder abc265_a - Virtual Judge

题目大意:

一个水果店出售苹果。
您可以按任意顺序多次执行以下操作:

  • 以𝑋元购买一个苹果。
  • 以𝑌元购买三个苹果。

您需要支付多少元才能获得确切地𝑁个苹果?

思路:签到题,判断买三个是否比一个一个卖便宜,是的话先三个三个买,最后除三余下的数一个一个买;否则就一个一个买。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值