Codeforces Round #280(Div. 2)

A. Vanya and Cubes

题目大意:

       给你n(n <= 1e4)个立方体,问你能建的最高的金字塔的高度是多少。金字塔顶层需要1个立方体,往下第i层需要个立方体。

题解:

       模拟。由于n <= 1e4,层数也不会超过1e4。所以就一层一层加到不能加位置。

B. Vanya and Lanterns

题目大意:

       坐标范围为[0,l]的线段上有n个点,每个点可以覆盖坐标差的绝对值不大于d的位置,求确定最小的d使得这n个点可以覆盖整条线段。

题解:

       贪心。将点按坐标排序,最左边的点覆盖0,最右边的点覆盖l。相邻两点间的部分由这两个点各覆盖一半。将这些覆盖范围取max即为答案。

C. Vanya and Exams

题目大意:

       有n门考试,每门考试最高分不超过r,现在知道第i门考试得到了ai分,要提高这门考试1分需要写bi篇文章,问最少写多少篇文章才能使总平均分大于等于avg。

题解:

       贪心。将考试按提高分数需要写的文章数从小到大排序。按照这个顺序提升分数直到分数够了或者这门考试已经达到r分为止。

D. Vanya and Computer Game

题目大意:

       有n(n <= 1e5)只怪物,第i只怪物需要被攻击ai(ai <= 1e9)下才能被消灭。Vanya每秒钟攻击x(x <= 1e6)下,Vova每秒钟攻击y(y <= 1e6)下。问每只怪物被谁攻击的最后一下。如果同时攻击输出Both。

题解:

       模拟。直接模拟每只怪物每次是谁攻击的肯定不行。观察到x <= 1e6, y <=1e6。每秒钟两个人一起造成的伤害是固定的x + y。所以可以先将ai mod (x + y)再模拟每次攻击。由于有n只怪物。所以可以将血量为0~x + y – 1的结果都先预处理出来,最后输出答案即可。

E. Vanya and Field

题目大意:

       n*n(n <= 1e6)的网格中有m(m <= 1e5)棵苹果树,Vanya从一个格子出发(x0, y0),每次移动的向量均为(dx, dy),即如果Vanya现在在(x, y),移动后的格子为((x + dx) % n, (y + dy) % n)。问从哪个格子出发可以预见最多的苹果树。其中gcd(n, dx) = gcd(n, dy) = 1

题解:

       数学题,由gcd(n, dx) =gcd(n, dy) = 1,我们知i遍历0 ~ n – 1时,i * dx mod n也遍历0 ~ n – 1。所以从(0, 0), (0, 1)…(0, n - 1)出发将得到n条两两不相交的路线。并且每条路线的长度为n。即将网格分成了n个”等价类”。对于每棵苹果树,我们给它属于的路线答案加1,最后找到答案最大的路线即可。

       我们用d[x] = y来记录从(0, 0)出发的过程中横坐标到x的时候纵坐标为y。则第i棵苹果树属于第(yi – d[xi] + n) % n条路线。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值