上海计算机学会月赛丙组
上海计算机学会月赛丙组
长春高老师信奥工作室
专注中小学生C++编程和竞赛,有相关问题可以给我私信。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
上海市计算机学会竞赛平台丙组比赛目录及题解持续更新中
持续更新中。。。原创 2023-12-09 10:32:15 · 9858 阅读 · 0 评论
-
上海计算机学会2025年5月月赛C++丙组T1 打包购买
Alice需要购买10个面包,面包店提供两种规格:2个面包x元和4个面包y元。目标是找到购买10个面包的最小总花费。通过比较两种规格的单价,选择单价较低的规格进行购买。如果4个包装的单价低于2个包装,则购买两个4个包装和一个2个包装;否则,购买五个2个包装。代码通过判断y与2x的关系,输出相应的最小花费。原创 2025-05-24 20:29:09 · 1015 阅读 · 0 评论 -
上海计算机学会2025年5月月赛C++丙组T2 手机充电
Bob的手机电量每分钟在充电时增加2%,不充电时减少3%。他需要将电量调整到恰好50%,且电量必须保持在0%到100%之间。对于每组输入的电量n,计算达到50%所需的最少时间。如果n大于50,通过放电和充电的组合来调整;如果n小于50,通过充电和放电的组合来调整。具体实现见代码,通过计算差值和调整步骤得出结果。原创 2025-05-24 20:28:44 · 775 阅读 · 0 评论 -
上海计算机学会2025年5月月赛C++丙组T3 稳定区间
Carol 有一个长度为 $n$ 的数组 $a$,定义函数 $f(l,r)=\sum_{i=l}^{r-1}(a_i-a_{i+1})$。如果 $f(l,r)\neq (a_r-a_l)$,则称子区间 $[l,r]$ 是不稳定的。Carol 想知道数组 $a$ 中有多少个子区间是不稳定的。通过观察发现,稳定区间的两端数字必须相等。因此,可以先计算稳定区间的数量,然后用总区间数减去稳定区间数,得到不稳定区间的数量。总区间数为 $n(n-1)/2$,稳定区间数可以通过统计数组中相同数字的出现次数来计算。具体实原创 2025-05-24 20:28:26 · 1031 阅读 · 0 评论 -
上海计算机学会2025年5月月赛C++丙组T4 投掷骰子
Dave 喜欢用骰子猜选择题,骰子上的数字1和4的点数为红色,其他为黑色。他提出一个问题:是否可以通过投掷三个骰子,使得所有朝上的面中,红色点数之和为A,黑色点数之和为B?输入包含多组数据,每组数据给出A和B,要求判断是否存在满足条件的骰子组合。可以通过深度优先搜索或枚举所有可能的骰子组合来解决问题,时间复杂度为O(666)。对于每组数据,若存在满足条件的组合,则输出YES,否则输出NO。原创 2025-05-24 20:27:54 · 700 阅读 · 0 评论 -
上海计算机学会2025年5月月赛C++丙组T5 相等数组
时间限制:1000 ms内存限制:256 MBEve 有一个长度为 nnn 的数组 aaa 以及一个常数 m≥2m\ge 2m≥2,他知道对于任意的 1≤i≤n1\leq i\leq n1≤i≤n,都有 2≤ai≤m2\leq a_i\leq m2≤ai≤m。Eve 觉得数组里一定要有全部相等的元素,所以他想通过以下操作把数组里的元素变得全部相等:请帮助 Eve 求出最少操作多少次能够使得数组里元素全部相等,如果无论多少次操作都不能达成目标,则输出 −1-1−1。第一行一个整数 TTT 表示数组组数,对原创 2025-05-24 20:27:12 · 1358 阅读 · 0 评论 -
第六届上海市青少年算法竞赛网络赛(青年组)T4 连续的零(二)
时间限制:1000 ms内存限制:256 MB给定一个 序列 b1b2…bnb_1b_2\dots b_nb1b2…bn, 的意思就是这个数列里只有 与 。我们可以将序列里不超过 kkk 个 改成 ,请问修改后序列里最多能有多少个连续的零?样例输出解析双指针法,详见代码:原创 2025-03-31 22:49:27 · 1611 阅读 · 0 评论 -
第六届上海市青少年算法竞赛网络赛(青年组)T3文件排序
时间限制:1000 ms内存限制:256 MB有 nnn 份文件需要安置在磁带上,第 iii 份文件的长度为 aia_iai,它会被访问 cic_ici 次。当要访问一份文件时,要从磁带上最靠前的文件开始,顺序找到这份文件为止,单次访问的时间就是经过的文件的总长度之和。你需要在磁带上安排文件的放置顺序,使得所有文件累计访问时间的总和最小。例如假设磁盘的布局是在第 333 份文件之前还放置了第 111 与第 555 份文件,则样例输出样例解释:文件4 → 文件2 → 文件1 → 文件3 → 文件5原创 2025-03-31 22:32:09 · 1107 阅读 · 0 评论 -
第六届上海市青少年算法竞赛网络赛(青年组)T2平方的和
时间限制:1000 ms内存限制:256 MB给定 nnn 个整数 a1,a2,⋯ ,ana_1, a_2, \cdots, a_na1,a2,⋯,an,请求出两两数字和的平方的和,也就是∑1≤i<j≤n(ai+aj)2\sum_{1\leq i < j\leq n}(a_i+a_j)^21≤i<j≤n∑(ai+aj)2由于这个数字比较大,输出答案模 1,000,000,0071,000,000,0071,000,000,007 的余数。样例输出样例解释:33+44+5*5利用平方和展开原创 2025-03-31 22:20:22 · 827 阅读 · 0 评论 -
第六届上海市青少年算法竞赛网络赛(青年组) T1 上升字符串
给定一个全部由大写英文字符组成的字符串,请判断它是否是一个上升字符串。所谓上升字符串就是字母不断变大,比如。原创 2025-03-31 21:36:08 · 645 阅读 · 0 评论 -
上海计算机学会2025年2月月赛C++丙组T1电话号码
在 A 国,一个有效的电话号码并不是 11 位,而是由 5 位无前导 0 的数字组成的,例如 12345,22222,90000 都是有效的电话号码,但 1234,01234,123456 都不是有效的电话号码。样例解释:在第一组数据中,Alice 总共存下了 123*123=15129 元,这符合电话号码的定义;Alice 每天都存下 x 元钱,坚持了 n 天,请问她存下的总钱数是不是一个有效的 A 国电话号码?对于 100% 的数据,1≤T≤100,1≤n,x≤1000。一行两个正整数 n,x。原创 2025-02-22 09:46:21 · 349 阅读 · 0 评论 -
上海计算机学会2025年2月月赛C++丙组T2新二进制
进一步地,Bob 认为一个区间 [l,r] 满足 1≤l≤r≤n 是正的,当且仅当其代表值 bl×2l−1+bl+1×2l+⋯+br×2r−1>0,区间 [l,r] 是负的则表示代表值 <0。样例解释:对于第三组数据,区间 [1,1],[1,2],[2,2] 的代表值分别为 1,-1,-2,则A=1,B=2,|A-B|=1。对于 100% 的数据,1≤T≤10^5,1≤n≤10^5,∑n≤3×10^5,bi=1 或 bi=−1。对于 60% 的数据,1≤T≤10,1≤n≤1000。第一行一个整数 n。原创 2025-02-22 09:45:56 · 470 阅读 · 0 评论 -
上海计算机学会2025年2月月赛C++丙组T3区间求和
面对这个发现,他提出了一个新的问题:给定序列 a1∼n 与 q 次询问,每次询问给出 l,r,如果可以在执行询问前任意次交换 a 中两个元素的位置得到 a1∼n′,对于 100% 的数据,1≤T≤10^4,1≤n,∑n≤2×10^5,1≤q,∑q≤2×10^5,1≤ai≤10^5,1≤l≤r≤n。对于 60% 的数据,1≤T≤10,1≤n,q≤1000。一次询问的答案指的是 al∼r′ 的和。对于 30% 的数据,1≤T≤10,1≤n,q≤10。内存限制: 512 Mb时间限制: 1000 ms。原创 2025-02-22 09:45:30 · 426 阅读 · 0 评论 -
上海计算机学会2025年2月月赛C++丙组T4数阵交换
Alice 每天都希望看到不同的优美的数阵,所以请算出通过任意次(可以是 0 次)交换一列中的两个数字,能造出多少个不同的优美的数阵。对于 100% 的数据,1≤T≤10^4,2≤n≤4×10^5,∑n≤4×10^5,1≤pi,j≤n,p1,p2 分别构成 1∼n 的排列。如果想要交换完的两个行元素都是1到n的全排列,那么交换的数字就必须全部相同,对于 60% 的数据,1≤T≤10,2≤n≤1000。内存限制: 512 Mb时间限制: 1000 ms。对于 30% 的数据,1≤T≤10,2≤n≤18。原创 2025-02-22 09:44:58 · 551 阅读 · 0 评论 -
上海计算机学会2025年2月月赛C++丙组T5子矩阵和
他可以据此构造一个 n×n 的矩阵,其中位于第 i 行第 j 列的元素值等于 S 中第 i 个字符与第 j 个字符所对应数字的乘积。例如,若 S 的第 3 位是 5,第 7 位是 2,则矩阵中 (3,7) 位置(第三行第七列)的元素为 5×2=10。符合题意的子矩阵为 [(2,1),(3,1)] 与 [(1,2),(1,3)](用矩阵的左上角和右下角坐标表示矩阵)。分析可知,子矩阵和,为行的区间和乘以列的区间和,则可以求出所有区间和,找到t的因数,再求子矩阵数量。对于 30% 的数据,∣S∣≤50。原创 2025-02-22 09:44:16 · 757 阅读 · 0 评论 -
上海计算机学会2025年1月月赛C++丙组T1水瓶灌水
Alice用三个整数B1,B2,B3来表示水瓶的灌水情况,B1=1表示第一个水瓶被灌满了水,B1=0则表示第一个水瓶是空的。Alice有三个水瓶,如果有至少两个瓶子都是空的,那么Alice就会把它们灌满水,但如果只有至多一个瓶子是空的,Alice什么也不会做。对于第一组数据,三个水瓶都是空的,满足至少两个水瓶为空,所以输出Waterfillingtime。对于第二组数据,三个水瓶都是满的,没有至少两个水瓶为空,所以输出Notnow。对每组数据,输出一行。原创 2025-01-27 09:10:59 · 395 阅读 · 0 评论 -
上海计算机学会2025年1月月赛C++丙组T5分块序列
Eve发现,并不是所有序列都能被合理地分块,比如[1,4,3]没有合理的分块方案,于是他转而想知道,如果可以对这个序列进行一些改动,能不能得到合法的分块方案呢?对于100%的数据,1≤T≤10^4,1≤n≤2×10^5,1≤ai≤10^6,∑n≤2×10^5。对于每组数据,第一行一个整数n表示序列长度,第二行n个整数a1∼n表示序列。对于60%的数据,1≤n,∑n≤2×10^5,1≤ai≤100。对于30%的数据,1≤n,∑n≤20,1≤ai≤20。原创 2025-01-27 09:14:06 · 811 阅读 · 0 评论 -
上海计算机学会2025年1月月赛C++丙组T4草莓分组
对于100%的数据,1≤T≤100,1≤n,k≤2×10^5,1≤ai≤10^9,∑n≤2×10^5。Diana喜欢最甜甜甜甜的小草莓,她有n种类型的草莓,第i种有ai颗。一颗草莓只能放进至多一个草莓礼盒,当然也可以不放进礼盒留给Diana独自享用。Diana想要用这些草莓制作成草莓礼盒,每个草莓礼盒里都有恰好k颗。对于30%的数据,n≤1000,k≤2,ai≤10。内存限制:256Mb时间限制:1000ms。对于60%的数据,k≤2。原创 2025-01-27 09:13:23 · 886 阅读 · 3 评论 -
上海计算机学会2025年1月月赛C++丙组T3小球涂色
解析:第一个小球有k种颜色可选,第二个小球有k-1种颜色可选,第k个小球只有一种颜色可选,第k+1个到第n个小球都只有一种颜色可选。换言之,如果1≤i,j≤n,∣j−i∣<k,第i个小球和第j个小球不能涂相同的颜色。两种涂色方案是不同的,当且仅当存在一个1≤i≤n,使得第i个小球的颜色在两种涂色方案中不同。有n个小球排成一行,依次从1到n编号,你需要用k种颜色给它们涂色。对于100%的数据,1≤T≤20,1≤n,k≤10^5。对于30%的数据,n≤k≤10。原创 2025-01-27 09:12:27 · 516 阅读 · 0 评论 -
上海计算机学会2025年1月月赛C++丙组T2音乐播放
某天,Bob想听语言为L的歌,他希望选出恰好k张唱片,这些唱片中的音乐都是语言为L的,并且它们的总时长越长越好。对于100%的数据,1≤T≤200,1≤k≤n≤1000,1≤L≤5,1≤mi≤100,1≤li≤5。对于第一组数据,有1,3两首语言为2的音乐,时长分别为5,7,则选择时长为7的可以达到目标。对于每组数据,如果能选出k张符合要求的唱片,输出一行一个整数表示最大总时长,否则输出一行。对于30%的数据,L=li=1,mi=1。原创 2025-01-27 09:11:47 · 277 阅读 · 0 评论 -
上海计算机学会2020年10月月赛C++丙组T5小球的颜色
给定n个数字a1,a2,…我们需要更改一些数字,使得最后数字种类不超过k种,请问最少需要更改多少数字。内存限制:256Mb时间限制:1000ms。将颜色为5的小球改成2即可。原创 2025-01-20 11:17:57 · 425 阅读 · 0 评论 -
上海计算机学会2020年10月月赛C++丙组T4预定货物
受天气和心情影响,学习用品的进价和售价都在不断改变,具体而言,暑假一共有n天,其中第i天订购一套学习用品的进价是ai,第ii天转手卖掉一套学习用品的售价是bi。由于订货路途也会费时,如果小爱在第i天订购了学习用品,那么她只能在第i+1天到第n天中的任何一天进行出售。对于100%的数据,保证1≤n≤2,000,000,1≤ai,bi≤1,000,000。第二行包含n个正整数,其中第i个数ai表示第ii天订购一套学习用品的进价。内存限制:256Mb时间限制:1000ms。原创 2025-01-20 11:07:46 · 362 阅读 · 0 评论 -
上海计算机学会2020年10月月赛C++丙组T2手机充电
小爱有m个充电宝,其中第i个充电宝的型号为ti,剩余电量为ai%。他按给定顺序使用充电宝,当一个充电宝的电量耗尽时,会选择换一个充电宝接着使用。已知市面上一共有n种型号的充电宝,其中型号为i的充电宝中每1%的电量可以使小爱的手机继续使用xi秒。输出共一行,一个整数,表示小爱的手机还能继续使用的时间。所以用上所有的充电宝能够使手机继续使用50000秒。小爱在野外游玩时,手机没电了,幸好,他带了一些充电宝。内存限制:256Mb时间限制:1000ms。原创 2025-01-20 10:30:01 · 367 阅读 · 0 评论 -
上海计算机学会2020年10月月赛C++丙组T1时间格式
一段时间总计n秒。请将这段时间转换成以小时、分钟和秒组成的时间格式,中间以冒号。内存限制:256Mb时间限制:1000ms。例如n=10000,输出。原创 2025-01-20 10:11:13 · 256 阅读 · 0 评论 -
上海计算机学会2024年12月月赛C++丙组T5查找 404
对于 100% 的数据,1≤T≤10^5,1≤n≤10^5,1≤∑n≤10^6,S 中仅包含。由于这个数字可能非常大,你需要其输出模 10^9+7 的结果。对于 60% 的数据,1≤T≤100,1≤n,∑n≤100。对于 30% 的数据,1≤T≤10,1≤n,∑n≤10。内存限制: 256 Mb时间限制: 1000 ms。Eve 有一个字符串 S,该字符串仅由字符。对于每组数据,输出一行一个整数表示答案。第一行一个整数 n 表示 S 的长度。,其中分别有 1,2,0,0 个。子序列,共 3 个。原创 2024-12-13 08:00:00 · 634 阅读 · 0 评论 -
上海计算机学会2024年12月月赛C++丙组T4找子序列
换言之,他想知道是否存在一个下标序列 i1∼k(k≥1),满足 1≤i1原创 2024-12-13 08:00:00 · 550 阅读 · 0 评论 -
上海计算机学会2024年12月月赛C++丙组T3充电问题
能量计算公式为功率乘以时间,例如,如果一个插座的功率是 3 瓦,充电时间为 3 小时,则电瓶车能够存储的能量为 3×3=9 瓦时。对于 100% 的数据,1≤T≤10^5,1≤∑n,∑m,h,ai,bi≤10^5。对于每组数据,输出一行一个整数,表示在 h 小时后所有电瓶车所存储的最大总能量。在第一组数据中,使用第二个插座给唯一的车充电,2 小时充了 80 瓦时的电。对于 60% 的数据,1≤∑n,∑m,h,ai,bi≤10^3。对于 30% 的数据,1≤∑n,∑m,h,ai,bi≤10。原创 2024-12-13 08:00:00 · 439 阅读 · 0 评论 -
上海计算机学会2024年12月月赛C++丙组T2最长连签
请你找出 Bob 和 Bella 中谁的最长连续签到天数更长,或者报告他们的最长连续签到天数相同。在第一组数据中,Bob 在第 1,2,3 天连续签到,最长连签天数是 3;Bella 在第 2,3,4,5 天连续签到,最长连签天数是 4,所以输出 Bella。对于 100% 的数据,1≤T≤10^5,1≤∑n≤10^5,0≤ai,bi≤10^9,其中 ∑n 表示单个测试点里所有 n 的和。对于 60% 的数据,1≤∑n≤10001≤∑n≤1000。对于 30% 的数据,1≤∑n≤101≤∑n≤10。原创 2024-12-13 08:00:00 · 421 阅读 · 1 评论 -
上海计算机学会2024年12月月赛C++丙组T1你画我猜
Alice 和她的一些朋友计划组队参加一个“你画我猜”活动,规则里写着“这次活动需要 6∼8 人组队“。Alice 的队伍一共有 n 个人,他们可以参加这次活动吗?内存限制: 512 Mb时间限制: 1000 ms。对于 100% 的数据,1≤n≤10。输入一行一个正整数 n。如果能参加,输出一行。原创 2024-12-13 08:00:00 · 294 阅读 · 0 评论 -
上海计算机学会2024年11月月赛C++丙组T5线段数
对于 100% 的数据,3≤n≤10^5,1≤ai≤10^9。Eve 希望最终数组中任意三个相邻元素之和都是 3 的倍数。内存限制: 512 Mb时间限制: 1000 ms。1+3+5=9,是 3 的倍数,不需要操作。第二行 n 个整数 a1,⋯,an。对于 60% 的数据,3≤n≤1000。请求出需要达成目标所需的最小操作次数。对 i=4,7,10 分别操作一次。对于 30% 的数据,3≤n≤5。一行一个整数表示答案。第一行一个整数 n。原创 2024-11-09 08:00:00 · 511 阅读 · 1 评论 -
上海计算机学会2024年11月月赛C++丙组T4添加删除
对于一个固定的参数 m(1≤m≤n)可以进行如下游戏:Dave 初始分数为 0,把第 1∼(m−1) 个小球先放进一个空桶(如果 m=1,则桶初始为空),此后依次把第 m,m+1,⋯,n 个小球放进桶中,每次把球放进桶后,Dave 从中任选一个球拿出来,将其分数加到自己的分数上,然后把这个球从桶中移走。从样例中可以分析出,m=1的时候可以从桶里拿出n个小球,m=2的时候可以拿出n-1个球,以此类推,根据贪心策略,我们可以留下分值最小的球。对于 100% 的数据,1≤n≤2×10^5,1≤ai≤10^9。原创 2024-11-09 08:00:00 · 301 阅读 · 0 评论 -
上海计算机学会2024年11月月赛C++丙组T3考勤系统
在 Carol 的办公楼的入口处有一套刷卡系统,每个员工都有一张唯一的身份卡,他们每次进出大楼都要刷卡,而系统会依次记录每次刷卡的员工编号,员工和他的编号一一对应,且在一天内一共有 n 次刷卡记录。一个员工第一次刷卡记为进入,第二次刷卡记为离开,第三次记为进入,以此类推。在第 5 个时刻后,员工 2,4,5 在办公楼中,此时达到 3人。对于 100% 的数据,1≤n≤2×10^5,1≤ai≤n。内存限制: 512 Mb时间限制: 1000 ms。对于 60% 的数据,n≤1000。第一行一个整数 n。原创 2024-11-09 08:00:00 · 555 阅读 · 0 评论 -
上海计算机学会2024年11月月赛C++丙组T2大胃王
对于第一组数据,Bob 收到了5元,这说明他吃了1个额外的包子,一共吃了10+1=11个包子,每一笼包子只有一个,于是 Bob 最多点了11笼包子。对于 100% 的数据,1≤T≤10^4,1≤x≤100,1≤y≤10,0≤r≤5000 且保证 r 是 5 的倍数。Bob 的同事向 Bob 发出了大胃王挑战:“如果你吃了超过 x 个包子,那你每多吃一个,我就给你 5 元。例如,如果 x=5 且 Bob 吃了 8 个包子,那么他会收到 15 元,因为他吃了 3 个额外的包子。原创 2024-11-09 08:00:00 · 530 阅读 · 0 评论 -
上海计算机学会2024年11月月赛C++丙组T1棋盘距离
在一个棋盘上,有两颗棋子,一颗棋子在第 a 行第 b 列,另一个颗棋子在第 x 行第 y 列。请问至少需要移动多少步才能让两个棋子相遇在同一个位置上?内存限制: 256 Mb时间限制: 1000 ms。每一步,可以选择一个棋子沿。移动一个单位,或同时沿。原创 2024-11-09 08:00:00 · 715 阅读 · 0 评论 -
上海计算机学会2024年10月月赛C++丙组T5构造排列
请问对于给定的参数 n ,有多少个长度为 n 的排列满足以上条件。由于答案可能较大,输出对109+7取模的结果即可。给定一个 nn,请你构造一个长度为 n 的排列p1,p2,...,pn,使得该排列中。对于任意的三个参数i,j,k,满足i原创 2024-10-07 22:00:00 · 1092 阅读 · 4 评论 -
上海计算机学会2024年10月月赛C++丙组T4任务调度
有 n 个任务,这些任务必须一项接一项完成,其中第 i 项任务的截止时间为 di,为了完成它,需要消耗 ti 的时间。请判断,是否存在一个方案能够在给定要求下,完成所有的任务。内存限制: 256 Mb时间限制: 1000 ms。原创 2024-10-07 22:00:00 · 517 阅读 · 0 评论 -
上海计算机学会2024年10月月赛C++丙组T3游戏闯关
已知该游戏共有 n 的关卡,第 i 个关卡有一个参数 ai,当 ai>0 时表示小爱在通过此关卡时,会补充 ai 点生命值;当 ai原创 2024-10-07 22:00:00 · 709 阅读 · 1 评论 -
上海计算机学会2024年10月月赛C++丙组T2三进制
给定一个十进制的正整数 n,请将它转换成三进制表示后输出。内存限制: 256 Mb时间限制: 1000 ms。原创 2024-10-07 22:00:00 · 359 阅读 · 0 评论 -
上海计算机学会2024年10月月赛C++丙组T1胜率判断
甲在 b 次投篮中投中 a 次,乙在 y 次投篮中投中 x 次,请判断谁的胜率更高。内存限制: 256 Mb时间限制: 1000 ms。原创 2024-10-07 22:00:00 · 575 阅读 · 0 评论 -
上海计算机学会2024年9月月赛C++丙组T5材料组合
合金具有 m 种性质,每种性质可以用一个整数衡量。每种材料都会影响所有的属性。如果使用了第 i 种材料,会使第 j 种性质增加 ai,j,注意 ai,j 可正可负。若需要所有属性的最后数值都不低于 0,则最多可以使用多少种材料?若没有办法用任何材料的组合,输出 0。有 n 种材料,我们需要挑选其中的一些材料组成合金,每种材料只能使用一次。内存限制: 256 Mb时间限制: 1000 ms。原创 2024-09-23 08:00:00 · 463 阅读 · 0 评论
分享