P1008小核桃与插班生 普及+/提高 CSP-J组 前缀和 差分 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 2903/4997 题目描述 一排学生共 n n 个人在一起听课,分别坐在位置 1 , 2 , 3... n 1,2,3...n,每个人都有一个听课认真度 a i a i ,这时来了一个调皮的插班生,他会影响别人听课。具体来说,距离他 d i s dis 的学生(距离即两个人位置之差的绝对值),听课认真度将减少 n − d i s n−dis,注意,一位学生的听课认真度最低不会低于 0 0。总共有 n n 个座位供插班生选择,被占领座位的学生将被踢出班级,其他人的座位不变,但听课认真度会减少。现在想知道,如果插班生坐在了位置 1 , 2 , 3 , 4... n 1,2,3,4...n,所有学生的听课认真度之和分别是多少。(插班生没有听课认真度) 输入格式 第一行输入一个正整数 n n, 表示学生的个数。 接下来一行输入 n n 个正整数,表示每个学生的听课认真度。 输出格式
以下是使用 C++ 解决该问题的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; // 存储每个学生的听课认真度 vector<int> a(n + 1); for (int i = 1; i <= n; ++i) { cin >> a[i]; } // 遍历插班生可能坐的每个位置 for (int seat = 1; seat <= n; ++seat) { int totalAttention = 0; // 重新复制一份听课认真度数组,避免修改原始数组 vector<int> attention = a; // 被占领座位的学生听课认真度变为 0 attention[seat] = 0; // 计算每个学生听课认真度的减少量 for (int i = 1; i <= n; ++i) { if (i != seat) { int dis = abs(i - seat); int decrease = n - dis; // 确保听课认真度不低于 0 attention[i] = max(0, attention[i] - decrease); } } // 计算所有学生的听课认真度之和 for (int i = 1; i <= n; ++i) { totalAttention += attention[i]; } // 输出结果 cout << totalAttention; if (seat < n) { cout << " "; } } cout << endl; return 0; } ``` 代码解释: 1. 输入处理:首先读取学生的数量 `n`,然后读取每个学生的听课认真度,存储在数组 `a` 中。 2. 遍历插班生可能的座位:使用 `for` 循环遍历插班生可以坐的每个位置。 3. 模拟插班生入座:对于每个座位,复制一份听课认真度数组 `attention`,将被占领座位的学生听课认真度设为 0。 4. 计算听课认真度的减少量:遍历每个学生,计算其与插班生的距离 `dis`,进而得到减少量 `n - dis`,同时确保每个学生的听课认真度不低于 0。 5. 计算总听课认真度:将所有学生的听课认真度相加,得到总听课认真度。 6. 输出结果:输出每个插班生座位对应的总听课认真度,用空格分隔。 复杂度分析: - 时间复杂度:$O(n^2)$,因为对于每个插班生座位,都需要遍历一次所有学生。 - 空间复杂度:$O(n)$,主要用于存储学生的听课认真度。 [2026-02-07 18:26:52 | AI问答 | 642点数解答]
- [字节豆包] P1008小核桃与插班生 普及+/提高 CSP-J组 前缀和 差分 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 2903/4997 题目描述 一排学生共 n n 个人在一起听课,分别坐在位置 1 , 2 , 3... n 1,2,3...n,每个人都有一个听课认真度 a i a i ,这时来了一个调皮的插班生,他会影响别人听课。具体来说,距离他 d i s dis 的学生(距离即两个人位置之差的绝对值),听课认真度将减少 n − d i s n−dis,注意,一位学生的听课认真度最低不会低于 0 0。总共有 n n 个座位供插班生选择,被占领座位的学生将被踢出班级,其他人的座位不变,但听课认真度会减少。现在想知道,如果插班生坐在了位置 1 , 2 , 3 , 4... n 1,2,3,4...n,所有学生的听课认真度之和分别是多少。(插班生没有听课认真度) 输入格式 第一行输入一个正整数 n n, 表示学生的个数。 接下来一行输入 n n 个正整数,表示每个学生的听课认真度。 输出格式(642点数解答 | 2026-02-07 18:26:52)2
- [字节豆包] P1007小核桃与数组变换 普及/提高- CSP-J组 模拟 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 1188/3750 题目描述 一个长度为 n n 的数组,每秒都在发生变换。 每一次变换,第 1 1 个位置的数字将会和第 2 2 个位置的数字合并,第 3 3 个位置的数字将会和第 4 4 个位置的数字合并,以此类推。。 这个数组会一直变换到只剩两个数字为止。 合并数字时,将会使得两个数字相加。例如数组 [1,2,3,4,5] 第一秒会变成 [3,7,5](前两个数字合并,第三和第四个数字合并,由于没有第六个数字,所以第五个数字不变)第二秒会变成 [10, 5],此时数组中只剩两个数字,变换结束。 现在小核桃想知道最后的两个数字的平方和是多少。例如上述数组,平方和为 10 ∗ 10 + 5 ∗ 5 = 125 10∗10+5∗5=125 由于这个数组长度很大,所以小核桃在给你数据时采用了一种新的方式。小核桃总共会给出 k k 条信息,每条信息包含两个正整数 a , b a,b,表示这个数(416点数解答 | 2026-02-07 18:24:18)2
- [字节豆包] P1007小核桃与数组变换 普及/提高- CSP-J组 模拟 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 1188/3750 题目描述 一个长度为 n n 的数组,每秒都在发生变换。 每一次变换,第 1 1 个位置的数字将会和第 2 2 个位置的数字合并,第 3 3 个位置的数字将会和第 4 4 个位置的数字合并,以此类推。。 这个数组会一直变换到只剩两个数字为止。 合并数字时,将会使得两个数字相加。例如数组 [1,2,3,4,5] 第一秒会变成 [3,7,5](前两个数字合并,第三和第四个数字合并,由于没有第六个数字,所以第五个数字不变)第二秒会变成 [10, 5],此时数组中只剩两个数字,变换结束。 现在小核桃想知道最后的两个数字的平方和是多少。例如上述数组,平方和为 10 ∗ 10 + 5 ∗ 5 = 125 10∗10+5∗5=125 由于这个数组长度很大,所以小核桃在给你数据时采用了一种新的方式。小核桃总共会给出 k k 条信息,每条信息包含两个正整数 a , b a,b,表示这个数组中有一段长度为 a a 的(651点数解答 | 2026-02-07 18:25:02)2
- [字节豆包] P1020小核桃与删除字符串 普及+/提高 CSP-J组 双指针 二分答案 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 1481/2524 题目描述 给一个长度为 n n 的 01 01 字符串,你可以任意选择下面两个操作任意次: 从左往右删除任意长度连续段 从右往左删除任意长度连续段 现在要求 m a x ( 删掉的 1 , 剩下的 0 ) max(删掉的1,剩下的0) 最小。 输入描述 输入一行只包含 01 01 的字符串。 输出描述 输出一个整数,表示答案。 input1 复制 1001001001001 output1 复制 3 input2 复制 111011001000 output2 复制 1用C++(330点数解答 | 2026-02-07 18:40:10)3
- [字节豆包] P1018小核桃与数组规则 普及- CSP-J组 排序 线性DP 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 2225/2901 题目描述 小核桃身处在一个神秘的逃生游戏中,他需要通过解决各种谜题来获得能够帮助他逃脱的物品。在一道谜题中,小核桃被赋予了一个整数数组和一组规则,让他按顺序进行操作。以下是给小核桃的指示:给定一个整数数组,请按以下方法计算得分最高的方案: 首先选择一个整数 v v 并删除数组中所有等于 v v 的元素,并将它们的总和加入积分中。 同时,删除数组中所有等于 v + 1 v+1 或 v − 1 v−1 的元素,这些元素不得分。 重复上述步骤,直到数组中没有更多的元素为止。 现在,小核桃需要计算按照这些规则可以获得的最大分数是多少? 输入描述 第一行包含一个整数 n n,表示有 n n 个整数。 第二行包含 n n 个整数,表示第 i i 个数字值为 a i a i ,之间以一个空格隔开。 输出描述 计算出小核桃按照规则可以获得的最大分数。 input1 复制 (555点数解答 | 2026-02-07 18:38:00)3
- [字节豆包] P1009天气之子 普及- CSP-S组 模拟 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 2238/7787 题目描述 在一个古老的部落里,有一个关于天气之子的试炼。 试炼将会给出连续 n n 天的天气情况。每种天气被一个正整数编号。相同的正整数表示同一种天气。 每一天前,接受天气之子试炼的成员们必须每天给出当天的天气预报。预报准确率最高的会成为部落的天气之子。 你想出了一个奇妙的预报方法: 第一天预报天气为 <天气类型1>。从第二天开始: 若前一天预报成功,预报的天气类型保持不变。 若预报失败,统计前面所有天中的最多的天气(多种天气都是最多时,预报其中该天气第一次出现最晚的天气种类),修改当天的预报为该天气。 你的任务是计算你的预报成功天数。 输入格式 第一行一个正整数 n n,表示一共有 n n 天进行天气预报。 接下来一行 n n 个正整数 a 1 . . . a n a 1 ...a n ,其中 a i a i 表示第 i i 天的天气情况。相同的正整数表示(797点数解答 | 2026-02-07 18:29:12)2
- [字节豆包] P1009天气之子 普及- CSP-S组 模拟 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 2238/7787 题目描述 在一个古老的部落里,有一个关于天气之子的试炼。 试炼将会给出连续 n n 天的天气情况。每种天气被一个正整数编号。相同的正整数表示同一种天气。 每一天前,接受天气之子试炼的成员们必须每天给出当天的天气预报。预报准确率最高的会成为部落的天气之子。 你想出了一个奇妙的预报方法: 第一天预报天气为 <天气类型1>。从第二天开始: 若前一天预报成功,预报的天气类型保持不变。 若预报失败,统计前面所有天中的最多的天气(多种天气都是最多时,预报其中该天气第一次出现最晚的天气种类),修改当天的预报为该天气。 你的任务是计算你的预报成功天数。 输入格式 第一行一个正整数 n n,表示一共有 n n 天进行天气预报。 接下来一行 n n 个正整数 a 1 . . . a n a 1 ...a n ,其中 a i a i 表示第 i i 天的天气情况。相同的正整数表示(734点数解答 | 2026-02-07 18:30:34)2
- [字节豆包] P1019小核桃与积木堆 普及- CSP-J组 排序 贪心 标准IO 传统题 来源 TomAnderson 时间限制 1000ms 内存限制 256MB 通过/尝试次数 1787/2245 题目描述 数字线上的某些整数坐标处有 n n 个积木,小核桃不喜欢积木四处散落。所以他打算搬动积木,堆成不超过 m m 堆的积木堆。将坐标值 X X 的积木全部搬到到坐标值 Y Y 处,需要消耗 ∣ X − Y ∣ ∣X−Y∣ 的能量。 计算小核桃把玩具堆成不超过 m m 堆需要消耗的最小能量值。 输入描述 第一行包含两个整数,之间以一个空格隔开,分别是 n n, m m, n n 代表积木总数量, m m 代表最大堆数。 第二行包含 n n 个整数, x i x i 表示积木 i i 所处坐标值为 a i a i ,之间以一个空格隔开。 输出描述 计算出把积木堆成不超过 m m 堆需要消耗的最小能量值。 input1 复制 4 1 10 5 3 12 output1 复制 9 input2 复制 4 2 1 20 3 100 output2 复制(780点数解答 | 2026-02-07 18:38:58)3
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(385点数解答 | 2025-01-08 03:43:54)434
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(346点数解答 | 2025-01-08 03:46:29)430
- [DeepSeek] P3632国王游戏(弱化版)c++ 入门 排序 贪心 标准IO 传统题 时间限制 1000ms 内存限制 256MB 通过/尝试次数 382/1181 来源 TomAnderson 题目描述 恰逢 H 国国庆,国王邀请 n n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。 输入格式 第一行包含一个整数 n n,表示大臣的人数。 第二行包含两个整数 a a 和 b b,之间用一个空格隔开,分别表示国王左手和右手上的整数。 接下来 n n 行,每行包含两个整数 a a 和 b b,之间用一个空格隔开,分别表示每个大臣左手和右手(550点数解答 | 2025-04-28 18:16:50)375
- [DeepSeek] P3632国王游戏(弱化版) 入门 排序 贪心 标准IO 传统题 时间限制 1000ms 内存限制 256MB 通过/尝试次数 606/1828 来源 TomAnderson 题目描述 恰逢 H 国国庆,国王邀请 � n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 � n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。 输入格式 第一行包含一个整数 � n,表示大臣的人数。 第二行包含两个整数 � a 和 � b,之间用一个空格隔开,分别表示国王左手和右手上的整数。 接下来 � n 行,每行包含两个整数 � a 和 � b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整(1002点数解答 | 2025-05-10 20:58:15)178