【NOIP2015 基础】骑士的金币(coin) 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:提高 分数:100 OI排行榜得分:18(0.1*分数+2*难度) 出题人: 描述 国王将金币作为奖励,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。 你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。 输入描述 一个整数(范围1到10000),表示天数。 输出描述 骑士获得的金币数。 用例输入 1 6 用例输出 1 14 提示 【来源】 noip2015普及组复赛第1题 来源 noip复赛 需要找规律的循环
以下是使用Python实现的代码: ```python # 获取输入的天数 days = int(input()) # 初始化金币总数为0 total_coins = 0 # 当前发放金币的天数,从1开始 current_days = 1 while days > 0: if days >= current_days: # 如果剩余天数大于等于当前发放金币的天数 total_coins += current_days * current_days days -= current_days else: # 如果剩余天数小于当前发放金币的天数 total_coins += days * current_days days = 0 # 增加当前发放金币的天数 current_days += 1 print(total_coins) ``` 以下是使用C++实现的代码: ```cpp #include <iostream> using namespace std; int main() { // 存储输入的天数 int days; cin >> days; // 初始化金币总数为0 int total_coins = 0; // 当前发放金币的天数,从1开始 int current_days = 1; while (days > 0) { if (days >= current_days) { // 如果剩余天数大于等于当前发放金币的天数 total_coins += current_days * current_days; days -= current_days; } else { // 如果剩余天数小于当前发放金币的天数 total_coins += days * current_days; days = 0; } // 增加当前发放金币的天数 current_days++; } cout << total_coins << endl; return 0; } ``` 代码解释 1. 输入处理:程序首先读取用户输入的天数。 2. 循环处理:使用一个`while`循环来模拟金币的发放过程。在每次循环中,判断当前剩余的天数是否大于等于当前发放金币的天数。 - 如果是,则将当前发放金币的天数乘以当前发放金币的天数累加到总金币数中,并从剩余天数中减去当前发放金币的天数。 - 如果不是,则将剩余天数乘以当前发放金币的天数累加到总金币数中,并将剩余天数置为0。 3. 更新当前天数:每次循环结束后,将当前发放金币的天数加1。 4. 输出结果:最后输出骑士获得的总金币数。 [2026-02-04 21:40:54 | AI问答 | 552点数解答]
- [字节豆包] 【NOIP2015 基础】骑士的金币(coin) 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:提高 分数:100 OI排行榜得分:18(0.1*分数+2*难度) 出题人: 描述 国王将金币作为奖励,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。 你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。 输入描述 一个整数(范围1到10000),表示天数。 输出描述 骑士获得的金币数。 用例输入 1 6 用例输出 1 14 提示 【来源】 noip2015普及组复赛第1题 来源 noip复赛 需要找规律的循环(552点数解答 | 2026-02-04 21:40:54)3
- [字节豆包] 【NOIP2014 基础】螺旋矩阵 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:提高 分数:100 OI排行榜得分:18(0.1*分数+2*难度) 出题人: 描述 一个 n 行 n 列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第 1 行第 1 列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入 1,2,3,...,n 2 ,便构成了一个螺旋矩阵。 下图是一个 n=4 时的螺旋矩阵。 ⎝ ⎜ ⎜ ⎜ ⎛ 1 12 11 10 2 13 16 9 3 14 15 8 4 5 6 7 ⎠ ⎟ ⎟ ⎟ ⎞ 现给出矩阵大小 n 以及 i 和 j,请你求出该矩阵中第 i 行第 j 列的数是多少。 输入描述 共一行,包含三个整数 n, i, j,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。 输出描述 一个整数,表(289点数解答 | 2026-02-02 17:32:56)8
- [字节豆包] 【基础】倒水 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:基础 分数:100 OI排行榜得分:14(0.1*分数+2*难度) 出题人: 描述 在一个桌子上摆放了n个杯子,每个杯子中有一定量的水。小A同学负责向杯子中倒水,他总共倒了k次,每次会向从第L个杯子到第R个杯子中添加P毫升的水(注意:水只可能增加,不可能减少)。 请问小A同学倒了k次水之后,n个杯子每个杯子有多少毫升的水。 输入描述 第一行包含两个整数n和k。 第二行包含n个整数,表示一开始每个杯子中水的毫升数。 接下来k行,每行包含三个整数L,R,P,表示一次操作。 输出描述 共一行,包含n个整数,表示最终n个杯子每个杯子有多少毫升的水。 用例输入 1 8 3 1 2 10 8 1 5 1 1 7 8 12 1 8 4 2 3 12 用例输出 1 5 18 26 12 5 9 17 17 提示 【数据范围】 1≤n,k≤100000, 1≤L≤R≤n, 0≤P≤1000, 0≤杯子中水的初始量≤1000(160点数解答 | 2026-02-04 21:37:25)3
- [字节豆包] 【基础】Even More Odd Photos 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:基础 分数:100 OI排行榜得分:14(0.1*分数+2*难度) 出题人: 描述 Farmer John 正再一次尝试给他的 N 头奶牛拍照(2≤N≤1000)。 每头奶牛有一个范围在 1…100 之内的整数的「品种编号」。Farmer John 对他的照片有一个十分古怪的构思:他希望将所有的奶牛分为不相交的若干组(换句话说,将每头奶牛分到恰好一组中)并将这些组排成一行,使得第一组的奶牛的品种编号之和为偶数,第二组的编号之和为奇数,以此类推,奇偶交替。 Farmer John 可以分成的最大组数是多少? 输入描述 输入的第一行包含 N。下一行包含 N 个空格分隔的整数,为 N 头奶牛的品种编号。 输出描述 输出 Farmer John 的照片中的最大组数。可以证明,至少存在一种符合要求的分组方案。 用例输入 1 7 1 3 5 7 9 11 13 用例输出 1 3 提示 输入(841点数解答 | 2026-02-03 15:18:32)6
- [字节豆包] 【NOIP2015 基础】扫雷游戏(mine) 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 256MB,其他语言 512MB 难度:提高 分数:100 OI排行榜得分:18(0.1*分数+2*难度) 出题人: 描述 扫雷游戏是一款十分经典的单机小游戏。在 n行 m 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。 输入描述 输入文件第一行是用一个空格隔开的两个整数n和m,分别表示雷区的行数和列数。 接下来 n行,每行m 个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。 输出描述 输出文件包含 n 行,每行 m(545点数解答 | 2026-02-02 17:34:02)11
- [字节豆包] 题目背景 在洛谷中,打卡不只是一个简单的鼠标点击动作,通过每天在洛谷打卡,可以清晰地 记录下自己在洛谷学习的足迹。通过每天打卡,来不断地暗示自己:我又在洛谷学习 了一天,进而帮助自己培养恒心、耐心、细心。此外,通过打卡,还可以获取经验值 奖励,经验值的多少在一定程度上反映了你在洛谷的资历和成就。通过打卡累积活跃 值,渐渐升级,会让你感觉“离神犇越来越近了”。 题目描述 洛谷的打卡系统与其他网站的打卡系统一样,连续打卡天数越多,每次打卡获得的奖 励也就越多,同时连续天数加上一天。然而,于其他网站只要一天不打卡,连续天数 就要清零。与其他网站不同的是,洛谷的打卡更具有人性化,如果多天不打卡,连续 天数仅仅只是减少,当遗漏天数越少,减少的天数也就越少。规则是减少2n-1天,n 为 连续遗漏天数。连续天数在下一次打卡时清算,打卡连续天数不会小于 0。也就是 说,如果每隔一天打卡,那么连续天数就不会变了。 当连续天数达到以下天数时,给予不同的活跃值奖励: 1 天:奖励 1(千里之行,始于足下) 3 天:奖励 2(坚持 3 天了,加油!) 7 天:奖励 3(曜日轮回) 30 天:奖(316点数解答 | 2025-11-16 19:45:59)60
- [字节豆包] 提高】推销员 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:提高 分数:100 OI排行榜得分:18(0.1*分数+2*难度) 出题人: 描述 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有N家住户,第i家住户到入口的距离为Si米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。阿明会从入口进入,依次向螺丝街的X家住户推销产品,然后再原路走出去。阿明每走1米就会积累1点疲劳值,向第i家住户推销产品会积累Ai点疲劳值。阿明是工作狂,他想知道,对于不同的X,在不走多余的路的前提下,他最多可以积累多少点疲劳值。 输入描述 第一行有一个正整数N,表示螺丝街住户的数量。 接下来的一行有N个正整数,其中第i个整数Si表示第i家住户到入口的距离。数据保证S1≤S2≤…≤Sn<108。 接下来的一行有N个正整数,其中第i个整数Ai表示向第i户住户推销产品会积累的疲劳值。数据保证Ai<103。 输出(627点数解答 | 2026-02-04 21:39:36)4
- [字节豆包] 【提高】Comfortable Cows 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:提高 分数:100 OI排行榜得分:18(0.1*分数+2*难度) 出题人: 描述 Farmer Nhoj 的草地可以被看作是一个由正方形方格组成的巨大的二维方阵(想象一个巨大的棋盘)。初始时,草地上是空的。 Farmer Nhoj 将会逐一地将 NN(1≤N≤105)头奶牛加入到草地上。第 ii 头奶牛将会占据方格 (xi,yi),不同于所有已经被其他奶牛占据的方格(0≤xi,yi≤1000)。 一头奶牛被称为是「舒适的」,如果它水平或竖直方向上与恰好三头其他奶牛相邻。然而,太舒适的奶牛往往产奶量落后,所以 Farmer Nhoj 想要额外加入一些奶牛直到没有奶牛(包括新加入的奶牛)是舒适的。注意加入的奶牛的 xx 和 yy 坐标并不一定需要在范围 0…1000内。 对于 1…N 中的每个 i,输出当初始时草地上有奶牛 1…i 时,Farmer Nhoj 为使得没有奶牛舒适,需要加入的奶牛的最小数量。(956点数解答 | 2026-02-02 17:26:13)9
- [字节豆包] 提高】卫星照片 USACO 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 128MB,其他语言 256MB 难度:普及 分数:100 OI排行榜得分:16(0.1*分数+2*难度) 出题人: 描述 农夫约翰总是想要一个农场的地图,所以他拍摄了一张N行M列的卫星照片。一部分的照片看起来像这样: .................. ..#####.......##.. ..#####......##... .................. #.......###.....#. #.....#####....... 他认为每个联通块都是一个谷仓或一头奶牛。联通块由若干个彼此水平或垂直相邻的#符号组成。以下的照片被认为是两个联通块: .... .#.. ..#. .... 农夫约翰认为一个联通块是谷仓,当且仅当它是一个完整的矩形,否则该联通块是一头奶牛。在第一张照片上面,有三个谷仓(大小分别为2x1,2x5和1x1)和两头奶牛。 计算他的卫星照片中谷仓和奶牛的数量。 输入描述 行1:两个空格分隔的整数:N和M(N,M<=80)。(850点数解答 | 2026-02-03 17:15:10)7
- [DeepSeek] 题目描述 某培训机构的学员有如下信息: - 姓名(字符串) - 年龄(周岁,整数) - 去年 NOIP 成绩(整数,且保证是 5 的倍数) 经过为期一年的培训,所有同学的成绩都有所提高,提升了 20% (当然 NOIP 满分是 600 分,不能超过这个得分)。 输入 第一行输入一个正整数 n ,表示学员个数。 第二行开始往下 n 行。每行首先是一个字符串表示学员姓名,再是一个整数表示学员年龄,再是一个整数为去年 NOIP 成绩。 输出 输出 n 行,每行首先输出一个字符串表示学生姓名,再往后两个整数,表示经过一年的培训后学员的年龄和他们今年的 NOIP 成绩。以空格隔开。 样例输入 复制 3 kkksc03 24 0 chen_zhe 14 400 nzhtl1477 18 590 样例输出 复制 kkksc03 25 0 chen_zhe 15 480 nzhtl1477 19 600 (178点数解答 | 2025-12-31 12:20:24)42
- [字节豆包] 【基础】高精度减法3 显示标签 时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 16MB,其他语言 32MB 难度:GESP4+/普及- 分数:0 OI排行榜得分:12(0.1*分数+2*难度) 出题人: 描述 处理两个高精度数的减法。(1000位内) 输入描述 两行,每行一个整数。(可能为负数,负号用“-”表示) 输出描述 一个整数,即两个数相减的结果。 用例输入 1 2345678901234 *********012345 用例输出 1 -121111110111111 提示 注意:输入的数可能是负数! 来源 高精度算法(687点数解答 | 2026-01-03 18:40:48)25
- [DeepSeek] 题目描述 某培训机构的学员有如下信息: - 姓名(字符串) - 年龄(周岁,整数) - 去年 NOIP 成绩(整数,且保证是 的倍数) 经过为期一年的培训,所有同学的成绩都有所提高,提升了 (当然 NOIP 满分是 分,不能超过这个得分)。 输入 第一行输入一个正整数 ,表示学员个数。 第二行开始往下 行。每行首先是一个字符串表示学员姓名,再是一个整数表示学员年龄,再是一个整数为去年 NOIP 成绩。 输出 输出 行,每行首先输出一个字符串表示学生姓名,再往后两个整数,表示经过一年的培训后学员的年龄和他们今年的 NOIP 成绩。以空格隔开。(186点数解答 | 2025-12-16 18:04:31)41