元素的笔记

技术创造新生

[P8813 CSP-J 2022] 乘方 - 洛谷

小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 ab,求 ab 的值是多少。

abba 相乘的值,例如 23 即为 32 相乘,结果为 2 × 2 × 2 = 8

“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。

小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为 231 − 1,因此只要计算结果超过这个数,她的程序就会出现错误。

由于小文刚刚学会编程,她担心使用 int 计算会出现问题。因此她希望你在 ab 的值超过 109 时,输出一个 -1 进行警示,否则就输出正确的 ab 的值。

然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。

阅读全文 »

[P7909 CSP-J 2021] 分糖果 - 洛谷

红太阳幼儿园有 n 个小朋友,你是其中之一。保证 n ≥ 2

有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。

由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿 R 块糖回去。

但是拿的太少不够分的,所以你至少要拿 L 块糖回去。保证 n ≤ L ≤ R

也就是说,如果你拿了 k 块糖,那么你需要保证 L ≤ k ≤ R

如果你拿了 k 块糖,你将把这 k 块糖放到篮子里,并要求大家按照如下方案分糖果:只要篮子里有不少于 n 块糖果,幼儿园的所有 n 个小朋友(包括你自己)都从篮子中拿走恰好一块糖,直到篮子里的糖数量少于 n 块。此时篮子里剩余的糖果均归你所有——这些糖果是作为你搬糖果的奖励

作为幼儿园高质量小朋友,你希望让作为你搬糖果的奖励的糖果数量(而不是你最后获得的总糖果数量!)尽可能多;因此你需要写一个程序,依次输入 n, L, R,并输出你最多能获得多少作为你搬糖果的奖励的糖果数量。

阅读全文 »

直播获奖 - 洛谷

NOI2130 即将举行。为了增加观赏性,CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为 w%,即当前排名前 w% 的选手的最低成绩就是即时的分数线。

更具体地,若当前已评出了 p 个选手的成绩,则当前计划获奖人数为 max (1, ⌊p × w%⌋),其中 w 是获奖百分比,x 表示对 x 向下取整,max (x, y) 表示 xy 中较大的数。如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多。

作为评测组的技术人员,请你帮 CCF 写一个直播程序。

阅读全文 »

洛谷P7071

一般来说,一个正整数可以拆分成若干个正整数的和。

例如,1 = 110 = 1 + 2 + 3 + 4 等。对于正整数 n 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,n 被分解为了若干个不同2正整数次幂。注意,一个数 x 能被表示成 2 的正整数次幂,当且仅当 x 能通过正整数个 2 相乘在一起得到。

例如,10 = 8 + 2 = 23 + 21 是一个优秀的拆分。但是,7 = 4 + 2 + 1 = 22 + 21 + 20 就不是一个优秀的拆分,因为 1 不是 2 的正整数次幂。

现在,给定正整数 n,你需要判断这个数的所有拆分中,是否存在优秀的拆分。若存在,请你给出具体的拆分方案。

阅读全文 »

洛谷P5661

著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案:

  1. 在搭乘一次地铁后可以获得一张优惠票,有效期为 45 分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。 在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于 45 分钟,即:tbus − tsubway ≤ 45

  2. 搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优惠票搭乘公交车,但每次搭乘公交车只能使用一张优惠券。

  3. 搭乘公交车时,如果可以使用优惠票一定会使用优惠票; 如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。

现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?

阅读全文 »

有 1∼n 这 n(n<10)个数,现将这 n 个数组成一个 n 位的数,每个数只能用一次,例如 n=2,则 12,21 等都是符合条件的数,但 11 和 22 不行。

问,输入 n 后,将符合条件的所有的 n 位数输出,且按照从小到大顺序输出。

阅读全文 »

洛谷P5660

小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串 来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 1。

注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一个长度为 3 的 01 字符串。

阅读全文 »

有两组数字,请找出第二组数中的哪些数在第一组中出现了,并从小到大输出。

阅读全文 »
0%