Codeforces Round 883 (Div. 3)

比赛链接:https://codeforces.com/contest/1846

A. Rudolph and Cut the Rope

题意:给n条绳子,知道一端所在高度坐标和各自绳长,他们另一端都连到一个糖果上,问至少剪掉多少绳子糖果能碰到地面
思路:显然只有坐标小于绳长的才能让糖果触地,去掉其他的即可

B. Rudolph and Tic-Tac-Toe

题意:给一个三人井字棋的局,看看现在是谁赢了,或者没人赢
思路:说实话我现在也不确定原题到底是什么意思,但是写几个if只判断当前局势就过了 bad task desu

C. Rudolf and the Another Competition

题意:n个选手,m道题,每做出一道得一分,知道每位选手做出每道题花费的时间,每做出一道题会累计做出当前题的时间点的罚时,按照先得分后罚时的规则排序,问一号选手的排名(如果得分罚时相同,一号优先)
思路:贪心,得分一样所以先做用时短的减少罚时,按规则算得分罚时排序即可

D. Rudolph and Christmas Tree

题意:在一颗树上有n个三角形的部分,他们都是底为d高为h的三角形,底边都和地面平行,三角形间可有重叠,问三角形所占面积
思路:计算面积总和,去个重,然后去掉重叠部分即可

E. Rudolf and Snowflakes

题意:有一片雪花由若干数组成,中间是一个数,每往外一圈,是上一圈雪花的k倍,每片雪花至少三圈。问给一片雪花的数的个数,是否存在k使雪花成立
思路:对于简单版本,因为至少三圈,可以预见到对于\(n<=10^6\)\(k<=10^3\),可以所有k都枚举一遍。
对于困难版本,因为\(n<=10^{18}\),再用原来的法子会超,不过我们可以从第四圈开始枚举\(k<=10^6\),对于三圈的进行特判,看看是否存在整数k满足\(1+k+k^2=n\)即可

F题交互题暂略

G. Rudolf and CodeVid-23

题意:我们用二进制表示一个人的健康状况,以及一个药能治愈的症状和带来的副作用,副作用能被药本身的治愈症状覆盖。给出一个人的初始状态和若干药,在使用一个药后需要\(t_i\)天后才能再用其他药,问能否痊愈以及痊愈的最短时间
思路:因为这个题二进制的位数\(n<10\),范围小,可以用整型来代替,我们把\(2^n\)种症状作为结点,把药作为两个状态间的通路,时间作为边权,并且因为二进制的特性,用两次药和不用药是一样的,一条路至多走一次,那么这题就是一个最短路问题,计算起点和0的距离即可

posted @ 2023-08-17 14:56  eternal_visionary  阅读(14)  评论(0编辑  收藏  举报