- 博客(955)
- 收藏
- 关注
原创 陕西计算机学会SYAP2025年5月月赛-新手组T1 存钱
小可决定从第一天开始存钱,每天存的钱数递增,第 (i) 天存 (i) 块钱。然而,每个星期日(幸运数字为7)小可不存钱。假设第一天是星期一,问小可需要多少天才能存够 (N) 块钱。通过模拟每天的存钱过程,累加存钱总额,直到达到或超过 (N) 块钱,输出所需天数。代码通过循环逐天计算存钱数,并在星期日跳过存钱,最终输出满足条件的天数。
2025-05-26 09:12:37
667
原创 陕西计算机学会SYAP2025年5月月赛-新手组T2 gogogo出发咯
小可参加赛车比赛,起点位于第0米,起点有一个氮气加速道具,可推进K米。赛道上有N个氮气加速道具,第i个道具位于A_i米处,可推进B_i米。A_i按升序排列。小可从起点出发,依次经过每个道具,若当前位置能到达道具位置,则获取道具并增加推进距离。最终输出小可停止的位置。通过模拟过程,代码遍历所有道具,更新可到达的位置,最终输出结果。
2025-05-26 09:12:24
627
原创 陕西计算机学会SYAP2025年5月月赛-新手组T3 最小鸢尾花数
给定一个正整数 $N$,要求找到最小的不小于 $N$ 的鸢尾花数。鸢尾花数是指一个正整数的十进制表示中,任意相邻两位的数字之差是同一个常数。例如,12345、8642、66666 都是鸢尾花数,而 88910 与 121 不是。通过深度优先搜索(DFS)算法,从 $N$ 的最高位开始,枚举所有可能的相邻数字差值,逐步构建满足条件的数,并确保其不小于 $N$。最终输出最小的符合条件的鸢尾花数。代码通过剪枝优化,避免不必要的搜索,确保在合理时间内找到答案。
2025-05-26 09:12:08
816
原创 陕西计算机学会SYAP2025年5月月赛-新手组T4 24点
该题目要求通过四则运算将四个不超过99的正整数组合成24点,并输出合法的表达式。解题思路是通过深度优先搜索(DFS)枚举所有可能的数字排列和运算符组合,并通过表达式求值验证是否等于24。代码中,首先通过DFS生成所有数字的排列,然后在每种排列下,通过DFS生成所有可能的运算符组合,最后利用栈结构进行表达式求值。若结果等于24,则输出该表达式。该方法确保了所有可能的组合都被尝试,从而找到符合条件的解。
2025-05-26 09:11:53
708
原创 陕西计算机学会SYAP2025年5月月赛-进阶组T1 哥德巴赫猜想
哥德巴赫猜想指出,任意大于2的偶数均可拆分成两个素数之和。虽然该猜想尚未被证明,但可以通过计算机验证特定数是否满足这一条件。本文提供了一个算法竞赛题目,要求判断给定正整数是否能拆分成两个素数之和。题目包含多组测试数据,每组数据给定一个正整数n,输出“Yes”或“No”表示是否满足条件。算法使用埃氏筛法生成素数列表,并通过双指针法查找是否存在两个素数之和等于n。代码展示了具体实现,包括素数生成和双指针查找过程。该算法适用于大规模数据,时间复杂度较低,能够有效解决问题。
2025-05-26 09:11:37
670
原创 陕西计算机学会SYAP2025年5月月赛-进阶组T3 变换装置
小意有一个长度为 $n$ 的正整数数组 $a$ 和一个变换装置。每个元素进行一次变换会导致其数位上的数字按特定规则变化:存在一个长度为 $9$ 的数组 $b$,表示数字 $1$ 到 $9$ 的变换规则,数字 $0$ 不变。小意每次启动装置会对数组中的所有元素进行变换,求启动 $k$ 次后数组 $a$ 从小到大排序后的结果。 输入格式:第一行输入 $n$ 和 $k$,第二行输入数组 $a$,第三行输入数组 $b$。 输出格式:输出变换并排序后的数组。 解析:由于每个数字经过多次变换后会回到自身,因此可以计算每
2025-05-26 09:11:18
629
原创 陕西计算机学会SYAP2025年5月月赛-进阶组T2 双色方格
小A在玩一个双色方格游戏,游戏规则要求他通过抽取不同颜色的左半和右半方格来获得积分。每对匹配的方格只能获得一次积分,且游戏在获得k积分时结束。为了确保胜利,小A需要计算最少需要抽取多少对不同颜色的方格。通过鸽巢原理,首先取每种颜色左半和右半方格中的最大值,然后从剩余部分中取前k-1个最大的小值,最后再额外抽取一个方格,确保获得足够的积分。代码实现中,通过排序和累加计算,最终输出所需的最少方格对数量。
2025-05-26 09:10:59
1066
原创 陕西计算机学会SYAP2025年5月月赛-进阶组T4 构造菊花图
题目要求将一棵树通过最少的操作次数构造为菊花图。菊花图的定义是存在一个支配点,所有边都与该点相连。小B提出的构造方案是:选取三个相邻的点a、b、c,断开a的所有边,将a与c相连,再将a断开的点与c相连。通过不断重复此操作,最终可以将树转化为菊花图。 解析部分指出,对于以某个节点为根的树,只需将深度为偶数的节点从叶子到根依次操作,即可将其转化为菊花图。具体实现通过两次深度优先搜索(DFS):第一次计算每个节点的奇数距离和偶数距离的节点数量;第二次通过换根操作,重新计算奇偶节点数量,并找到最小的操作次数。 最终
2025-05-26 09:10:41
929
原创 上海计算机学会2025年5月月赛C++乙组T2 平衡 01 串
本文介绍了一个关于01串的问题,要求找出所有子串的最小权重。权重的定义是子串中0的个数与子串外1的个数的较大值。通过双指针法,可以有效地解决这个问题。具体步骤是:首先统计所有1的个数,然后使用左右指针遍历子串,动态计算子串中0的个数和子串外1的个数,并更新最小权重。最终,程序输出每组数据的最小权重。该方法的时间复杂度较低,适用于大规模数据处理。
2025-05-24 20:30:11
968
1
原创 上海计算机学会2025年5月月赛C++乙组T1 逆序对数
题目要求计算一个排列中非空子序列的逆序对数与原排列逆序对数相等的数量,并对结果取模。通过分析,发现只有当子序列中不包含某些特定元素时,逆序对数才会保持不变。这些特定元素是比其前面所有元素大且比后面所有元素小的数。通过预处理数组,可以快速找到这些元素的数量。最终,符合条件的子序列数量为2的cnt次方减去1(如果cnt等于n,则减去空序列的情况)。代码通过快速幂计算2的cnt次方,并输出结果。
2025-05-24 20:29:47
958
原创 上海计算机学会2025年5月月赛C++丙组T1 打包购买
Alice需要购买10个面包,面包店提供两种规格:2个面包x元和4个面包y元。目标是找到购买10个面包的最小总花费。通过比较两种规格的单价,选择单价较低的规格进行购买。如果4个包装的单价低于2个包装,则购买两个4个包装和一个2个包装;否则,购买五个2个包装。代码通过判断y与2x的关系,输出相应的最小花费。
2025-05-24 20:29:09
949
原创 上海计算机学会2025年5月月赛C++丙组T2 手机充电
Bob的手机电量每分钟在充电时增加2%,不充电时减少3%。他需要将电量调整到恰好50%,且电量必须保持在0%到100%之间。对于每组输入的电量n,计算达到50%所需的最少时间。如果n大于50,通过放电和充电的组合来调整;如果n小于50,通过充电和放电的组合来调整。具体实现见代码,通过计算差值和调整步骤得出结果。
2025-05-24 20:28:44
706
原创 上海计算机学会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
949
原创 上海计算机学会2025年5月月赛C++丙组T4 投掷骰子
Dave 喜欢用骰子猜选择题,骰子上的数字1和4的点数为红色,其他为黑色。他提出一个问题:是否可以通过投掷三个骰子,使得所有朝上的面中,红色点数之和为A,黑色点数之和为B?输入包含多组数据,每组数据给出A和B,要求判断是否存在满足条件的骰子组合。可以通过深度优先搜索或枚举所有可能的骰子组合来解决问题,时间复杂度为O(666)。对于每组数据,若存在满足条件的组合,则输出YES,否则输出NO。
2025-05-24 20:27:54
642
原创 上海计算机学会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
1277
原创 信息学奥赛一本通 1396:病毒(virus) 第四章 图论
题目描述了一种病毒,它会将文档中的字母替换为其他字母,但不改变顺序或增减字母。小y通过在其他未感染的机器上生成一个按字母顺序排列的字典,并故意让字典感染病毒,利用字典的有序性来找出病毒替换字母的规律,进而恢复其他文档。任务是根据被病毒感染的字典,恢复一个字母串。输入包括字典中的单词个数、被感染的字典以及需要恢复的字母串。输出为恢复后的字母串,如果字典不完整或错误,则输出0。代码通过构建邻接矩阵和拓扑排序来确定字母的对应关系,最终恢复字母串。
2025-05-23 12:41:00
163
原创 上海计算机学会2025年5月月赛C++乙组T3 城市漫步
题目描述了一个城市漫步问题,C城有n个景点,通过n-1条双向道路连接成一棵树。Carol和朋友们约定在x号景点集合,游览k个景点,最后在y号景点告别。目标是找到从x出发,经过所有目标景点,最终到达y的最短路径。每条道路花费1单位时间。 输入包括多组数据,每组数据包含景点数量n、目标景点数量k、起点x、终点y、目标景点列表以及道路连接信息。输出为每组数据的最小总时间。 解题思路分为两步:首先通过深度优先搜索(DFS)找到从x到y的必经路径,并计算其长度;然后再次使用DFS遍历所有目标景点,计算到这些景点的往返
2025-05-22 21:51:28
520
原创 陕西计算机学会SYAP2025年4月月赛-新手组T1 销毁(easy)
小可手里有N张卡牌,每张卡牌上面有一个编号,它们的编号有可能相同。小可不喜欢重复的数字,所以他打算销毁部分卡牌,使得剩下的卡牌的编号互不相同。小可能够使用多次销毁操作,每次销毁操作2卡牌。请你求出,在任意次销毁操作之后,小可能剩下多少的卡牌。
2025-04-28 21:38:26
696
原创 陕西计算机学会SYAP2025年4月月赛-新手组T2 销毁(hard)
小可手里有N张卡牌,,每张卡牌上面有一个编号,它们的编号有可能相同。小可不喜欢重复的数字,所以他打算销毁部分卡牌,使得剩下的卡牌的编号互不相同。小可能够使用多次销毁操作,每次销毁操作K卡牌。请你求出,在任意次销毁操作之后,小可的卡牌。若有不同的方案,请输出字典序最小的一组方案,即输出的数字从小到大,并且尽量保留小的数字。若无解,则输出 -1。
2025-04-28 21:37:58
810
原创 陕西计算机学会SYAP2025年4月月赛-新手组T3 换一换
给定一个由小写字母组成的字符串S,你必须对该字符串中两个的位置进行交换,问交换后可以得到多少不同的字符串?
2025-04-28 21:37:01
947
原创 陕西计算机学会SYAP2025年4月月赛-新手组T4 区间数量
给定一个长度为N的数组A,问有多少区间LRL≤R。ALAL1...AR−1ARALorAL1or...orAR−1orAR,其中or为位运算中的或运算。简单来说便是与相等的区间数量。
2025-04-28 21:36:25
1465
原创 陕西计算机学会SYAP2025年4月月赛-进阶组T1 年龄统计
在X星球生活着一些长寿的人,甚至有些人的年龄甚至可以达到数以亿计。由于寿命过于悠久,X星人在谈论年龄时通常会以万为单位取整。现在X星某城市正在进行人口普查,一开始统计数据里没有任何人的信息。接下来你需要进行以下两种操作:1.统计数据中新增一个年龄为x的人2.查询目前统计数据中有多少年龄为x的人: 1000 ms: 64 MB。
2025-04-28 21:35:23
635
原创 陕西计算机学会SYAP2025年4月月赛-进阶组T2 高精度吗
小 S 拿到了一个不超过500位的正整数x,但它不小心忘记了末尾的某些位是多少。于是他用?表示了末尾的一些位置。小 Y 让小 S 算出x乘以一个一位数k的结果kx,因为有些位置不知道,因此小 Y 肯定算不出准确值。请你输出kx的误差。具体地说,请输出kx有可能的最大值与最小值的差。
2025-04-28 21:34:41
881
原创 陕西计算机学会SYAP2025年4月月赛-进阶组T3 平衡路径
给定一个n个点n−1条边的无向连通图,每个节点被标记为红色(‘R’)或蓝色(‘B’)。定义一条路径为“平衡路径”当且仅当该路径是简单路径,且路径上红色节点数量不少于蓝色节点数量,且路径的两个端点颜色不同。求满足条件的路径数量。简单路径:若表示路径的顶点序列中的顶点各不相同,则称这样的路径为简单路径。
2025-04-28 21:34:11
780
原创 陕西计算机学会SYAP2025年4月月赛-进阶组T4 归并回文
给你两个长度为n的字符串ST。现有一个空字符串Q。你可以以任意顺序进行如下两个操作任意次,判断是否能使得字符串Q为一个回文串。若S不为空,选择S的首字母添加到Q末尾,并将S的首字母删除。若T不为空,选择T的首字母添加到Q末尾,并将T的首字母删除。
2025-04-28 21:33:10
1007
原创 陕西计算机学会SYAP2025年3月月赛-进阶组T4 旅游
n个点m条边的有权无向图,每条边有一个开放时间st,只有在开放时间内,你才可以走上这条路,并在路径长度个单位时间抵达终点。(若截止时间之前仍在路径上,可以走完这条路经到达终点。可以对至多k条边修改其开放的起始时间或结束时间,求从1号点出发抵达n号点所需要花费的最少时间。(出发的时间是0,如果到达某个点时还没到某条边的开放时间,除了直接修改开放时间之外,你也可以在这个点原地休息,直到开放时间再出发。
2025-04-11 17:08:53
750
原创 2024年12月青少年C/C++软件编程(二级)等级考试试卷及答案解析
发生冲突的教学班暂不安排。现在我们查了一下高速公路上拍到的好几百辆车的时速,发现有的朝东开,有的朝西开,都不知道是谁在逆行了……),为餐桌数量,随后 m 行,每行给出一个正整数 k(≤ 10)以及该桌 k 位客人的代号,用空格分隔。网上有个段子说:妻子在家听广播,听到某高速路上有一辆车在逆行,想到丈夫在那条高速上行驶,就打电话对丈夫说:“老公啊,你走的那条高速上有一辆车在逆行,你小心点。),随后 n 行,每行给出一个人的代号和其性格,其中代号由 8 位数字组成,性格是单个字母 i 或 e,其间以空格分隔。
2025-04-01 20:00:34
82
原创 2024年9月青少年C/C++软件编程(二级)等级考试试卷及答案解析
随后 N 行,每行给出一个物品名称(长度不超过 10 的、由小写英文字母和下划线组成的字符串)和该物品所属的分类(1 代表干垃圾、2 代表湿垃圾、3 代表可回收物、4 代表有害垃圾)。这个串给出了字母串的生成规则:从第一个字母开始,如果对应的规则串字符是 `0`,则下一个字母应该生成当前字母的大/小写;输入第一行给出 2 个正整数 n 和 m(1 ≤ n,m ≤ 100),随后一共有 n × m 行,第 i 行给出编号为 i(i=1,... n×m)的碎片对应的指令集,每条指令集一定以唯一的 0 结尾。
2025-04-01 16:17:58
111
原创 第六届上海市青少年算法竞赛网络赛(青年组)T4 连续的零(二)
时间限制:1000 ms内存限制:256 MB给定一个 序列 b1b2…bnb_1b_2\dots b_nb1b2…bn, 的意思就是这个数列里只有 与 。我们可以将序列里不超过 kkk 个 改成 ,请问修改后序列里最多能有多少个连续的零?样例输出解析双指针法,详见代码:
2025-03-31 22:49:27
1598
原创 第六届上海市青少年算法竞赛网络赛(青年组)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
1094
原创 第六届上海市青少年算法竞赛网络赛(青年组)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
808
原创 第六届上海市青少年算法竞赛网络赛(青年组) T1 上升字符串
给定一个全部由大写英文字符组成的字符串,请判断它是否是一个上升字符串。所谓上升字符串就是字母不断变大,比如。
2025-03-31 21:36:08
618
原创 2024年6月青少年C/C++软件编程(二级)等级考试试卷及答案解析
接下来 M 行,每行给出 10 个数字,或者是 1 到 N 之间的一个编号,或者是 -1 表示没有对应的编号。小偷的新标记由若干个两位数组成,每个数字的十位对应行、个位对应列,而对应位置上的数字就是原始标记的编号。几乎每个国家都有自己忌讳的数字,有的大楼在给楼层编号的时候,会刻意跳过含有不吉利数字的编号。如上图 40 种标记从上到下、从左到右顺序编号后,按下图所示的规律打乱,则如果我们看到标记“71”,就是行标记为 7,列标记为 1 的单元格对应的数字 11,对应原始标记中第 11 个,即“很有钱”。
2025-03-30 22:50:33
75
原创 陕西计算机学会SYAP2025年3月月赛-进阶组T3 ABC
给定一个长度为n的仅包含小写字母的字符串s,你至多可以进行一次如下操作:选取s串中的任意一个位置,将其字符修改为任意小写字母。请计算操作之后的字符串中,满足ijk且sisjsk恰好为字符串abc的三元组ijk的最大可能数目。
2025-03-30 20:04:09
1008
原创 陕西计算机学会SYAP2025年3月月赛-进阶组T2 猫树
小明的宠物猫账账躲在了树上,小明来捕捉它。树一共有n个节点,账账在根节点x处。每一秒钟,小明可以封锁一个节点(不可以为账账在的节点),然后账账可以移动到一个树上相邻的未被封锁的节点。若账账逃到了叶子,那么它就逃脱成功。小明发现这样很有可能让账账逃跑。于是决定提前封锁一些节点。他想知道,他最少需要提前封锁多少节点,才可以不让账账成功逃脱。
2025-03-30 20:00:07
480
原创 陕西计算机学会SYAP2025年3月月赛-进阶组T1 出牌
有n个人正在打牌,每个人手中恰好有一张牌。他们将按照从编号从小到大的顺序依次选择是否出牌,每个人的出牌规则如下:如果当前还没有人出过牌,或者他手中的牌的点数大于最后一个出牌的点数,那么他必须出牌。牌的大小比较规则为2AKQJ109876543。请计算最终有多少个人成功打出了手中的牌。
2025-03-30 19:50:05
903
原创 陕西计算机学会SYAP2025年3月月赛-新手组T4 黄金大盗
有一个黄金小镇,小镇内有N栋楼。所有的楼围成了一个环,即1号楼与N号楼相邻。每栋楼中都蕴藏了一定数量的黄金(也有可能是空的)。黄金大盗听闻此讯,立即前往该小镇!每栋楼的黄金数量由数组A表示,其中第i栋楼的黄金数量为Ai。大盗从1∼N的楼栋顺序开始偷取黄金,偷到N号楼之后又会回到1号楼继续偷,直到偷取的黄金数量达到K才会停止。为了偷黄金的时候不被发现,他每到一栋楼最多只会偷1块黄金(有可能楼里已经没有黄金了)。求当大盗总共偷了K块黄金之后,每栋楼里剩下的黄金数。保证K。
2025-03-30 19:44:38
768
原创 陕西计算机学会SYAP2025年3月月赛-新手组T3 分割
给定一个长度为N的数组A,你需要将其分割成若干个子段,使得每一个子段中的数字都是唯一的(即子段中没有重复数字)。请问最少需要分割几次才能够满足条件?
2025-03-30 19:33:16
1017
原创 陕西计算机学会SYAP2025年3月月赛-新手组T2 钻孔
小可和小达最近迷上了一个新游戏!有一块A×B的木板,以及一个孔半径为R最后无法钻孔的人输掉本轮游戏。小可作为的人,请你判断:在小可和小达都足够聪明的情况下,小可能否赢下游戏?
2025-03-30 19:27:16
694
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人