自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 2024第15届蓝桥杯省赛C/C++大学A组第5题E题解:成绩统计

这样这一题的几个部分都可以在时限内完成了,最外层的二分时间复杂度为o(logn),内层需要排序+处理前缀和+枚举计算方差,时间复杂度为o(nlogn)+o(n)+o(n-k)=o(nlogn),所以本方法最终的时间复杂度是o(logn*nlogn)=o(n(logn)^2),可以在n=10^5时保证不超时。分析性质可知,想找到一个序列中k个数最小的方差,这k个数的大小一定是连续的。分析题意,答案具有明显的单调性,即如果如果检查x个人可以,那么大于x的都可以,最终的答案x就是最小的这个值。

2025-03-02 00:09:36 964 3

原创 2024第15届蓝桥杯省赛C/C++大学A组第4题D题解:团建

【问题描述】小蓝正在和朋友们团建,有一个游戏项目需要两人合作,两个人分别拿到一棵大小为n和m的树,树上的每个结点上有一个正整数权值。两个人需要从各自树的根结点 1出发走向某个叶结点,从根到这个叶结点的路径上经过的所有结点上的权值构成了一个正整数序列,两人的序列的最长公共前缀即为他们的得分。给出两棵树,请计算两个人最多的得分是多少。【输入格式】输入的第一行包含两个正整数nm,用一个空格分隔。第二行包含n个正整数c1c2· · ·cn。

2025-01-12 22:38:36 829

原创 2024第15届蓝桥杯省赛C/C++大学A组第3题C题解:训练士兵

从第一个士兵开始向后遍历,每次都比较S和所有未被训练完的士兵的一次训练需要的金币总和Σpi,当S更大时,说明剩下的士兵都需要单独训练,继续在金币总数上加上对应的price[i]*(i所需训练总数-组团训练次数)即可。当组团训练S的值小于,所有未被训练完的士兵的一次训练需要的金币总和Σpi时,采取组团训练,否则单独训练。用二分优化一下最后的遍历寻找组团训练总数的部分,但因为前面排序的时间复杂度是o(nlogn)的,输入和预处理前缀和是o(n)的,所以总的时间复杂度还是o(nlogn)。【评测用例规模与约定】

2025-01-12 20:31:50 1194

原创 2024第15届蓝桥杯省赛C/C++大学A组第二题B题解:五子棋对弈

根据题意,枚举出所有可能的棋盘情况,判断是否有一方获胜,统计平局的总数即可。可以通过dfs的方式枚举,从棋盘的第1格枚举到第25格,每格依次放置黑棋白棋,在函数参数中填写白棋和黑棋的个数,如果白棋超过13或者黑棋超过12则停止搜索。在每个位置,都判断当前四个方向(横向,纵向,对角)是否有连成一线的情况,如果有则停止搜索。在这一设定下,小蓝和小桥想知道,有多少种不同的棋局情况(终局不同看成不同情况,终局相同而落子顺序不同看成同一种情况),既确保棋盘下满又保证比赛结果为平局。:两种棋子,黑棋与白棋,代表双方。

2025-01-11 20:28:44 1361

原创 2024第15届蓝桥杯省赛C/C++大学A组第一题A题解:艺术与篮球

使用一个函数count()计算日期的笔画数,方法是通过对10取余获得数字的最后一位,将其笔画数num[x]累加,再将数字除以10直到数字变为0结束while循环,并统计位数,如果小于2要手动补一个0。为了既满足妈妈的期望,又不辜负爸爸的心意,小蓝决定根据日期的笔画数来安排自己的练习。日期的总笔画数为 2 + 13 + 2 + 5 + 13 + 1 + 13 + 1 = 50,因此在这天,小蓝会去练习书法。笔画数:13,1,2,3,5,4,4,2,2,2。汉字:零,一,二,三,四,五,六,七,八,九。

2025-01-11 19:37:08 916 7

原创 2023第十四届蓝桥杯省赛C/C++大学A组题解

每道题的详细题解已经单发,在此进行汇总。点击链接可以查看详细题解。满分代码(填空题为不超时代码)满分代码(填空题为不超时代码)

2024-04-09 21:40:22 1025

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第10题题解:翻转硬币

那么在计算0的个数的时候,如果i的质因数有奇数个就加上n/(i^2),否则减去n/(i^2),质因数的个数可以通过u(i)的正负判断。那么怎么求u(i)以及u(i)的和呢?乍一看g(i)好像就等于f(i),其实与f(i)相等的是i的所有不等于i的因数j的f(j)的和,再加上f(i)才等于g(i)。就是遍历到l时,从l到r的n/(i^2)的值都是一样的,这个范围的右界r=sqrt(n/(n/(i^2))),那么就只需要计算u(i)从l到r的前缀和差值乘以这个相同的n/(i^2),并将l指向r+1即可。

2024-04-06 02:10:32 1764 4

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第9题题解:像素放置

那么对于每一个数字方格,当我填充完它的右下角方格也就是最后一个方格时,它的周围已经确定,之后的填充不会影响到他,这时判断它的数字是否被减到0,如果大于0,说明它周围的黑色少于它的数字,不成立需要回退。为了判断这两个条件,我找出了每个方格,其影响到的所有数字方格,当这个方格被涂成黑色时,就将其影响到的所有数字方格的数字都减一,如果有一个数字被减到小于0,说明这种情况不成立需要回退。对于一个方格,先假设它涂白色(数值为0),并继续向后枚举,如果这种情况不成立,则将它涂成黑色(数值为1)继续枚举。

2024-04-02 23:45:28 1016 1

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第8题题解:异或和之和

也就是说,对于所有异或和的第k位乘以2^k的总和,等于所有第k位为1的异或和的个数乘以2^k。所有的异或和都是通过sum[l-1]异或sum[r]得到的,第k位为1的异或和的总数,就等于所有l和r中,sum[l-1]和sum[r]的第k位只有一个1的总对数。因为在这个式子中,前l-1项被异或了两次,而x^x=0,x^0=x,所以前l-1项均被异或两次后全都等于0,0对其他数字的异或不产生影响,sum[r]^sum[l-1]也就等于其中只异或了一次的l到r的异或和。对于 60% 的评测用例,

2024-03-30 23:40:41 715 1

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第7题题解:网络稳定性

本题难点有两个,一是判断出两点间的稳定性其实就是最大生成树中两点间的唯一通路,二是lca算法的书写,并且结合本题对稳定性的求法,在比赛的时候是看不到自己交的代码得了多少分的,如此复杂的代码也不好检查因此不好得分。为了做出本题我学习了一晚上lca的各种求法,不知不觉本文已经写了6200+字了,希望能够对你有帮助!

2024-03-29 17:00:28 1160 1

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第6题题解:买瓜

我在写这个题的时候将数组下标从1开始存,排序的时候sort第二个参数应该加n+1,因为这里写错了导致卡了很久,去读了官方这题的题解感觉很奇怪,将瓜分成两部分分别dfs,后一部分dfs时再二分搜索前一部分存的对应重量的刀数相加。可以使用dfs模拟这个从前往后选择的过程,dfs(id,sum,cut)中的三个参数分别表示当前选择的是第几个瓜,之前一共拿了多少重量的瓜,之前一共劈了多少刀。小蓝希望买到的瓜的重量的和恰好为。对于100%的评测用例,1≤n≤30,1≤Ai≤10^9,1 ≤m≤ 10^9。

2024-03-27 18:23:27 1213 1

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第4题题解:更小的数

对于从i到j的子串,如果第i位和第j位的数字不同的话可以直接判断出反转后的大小关系。如果这两位的数字相等,则该子串反转之后大小关系与i+1位到j-1位的子串相同。循环的顺序也很重要,本程序相当于依次判断前i位中所有子串的反转后大小关系,循环到第i位时前方i-1位所有子串的反转关系都已确定。本题最开始我使用string中的substr函数取子串,结果超时只过55%,说明substr函数还是影响效率的。注意,我们允许前导零的存在,即数字的最高位可以是 0 ,这是合法的。对于 40% 的评测用例,1。

2024-03-14 22:48:31 544 1

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第3题题解:平方数

当a,b均为奇数时,(a+b)*(a-b)为偶数*偶数也就是4的倍数;当a,b均为偶数时,(a+b)*(a-b)为偶数*偶数也就是4的倍数;已知平方差公式c=a^2-b^2=(a+b)*(a-b),令a-b=1,则a+b=2*b+1,c=2*b-2,即奇数的通用表达形式,说明任意一个奇数都可以表示为平方差的形式。对于整数x,1到x中有x/2个奇数,x/4个4的倍数,共有x/2+x/4个能表示为平方差形式的数。令a-b=2,c=2*(2b+2)=4(b+1),说明任意一个4的倍数都可以表示为平方差的形式。

2024-03-13 21:09:21 579 1

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第2题题解:有奖问答

小蓝正在参与一个现场问答的节目。活动中一共有 30 道题目,每题只有答对和答错两种情况,每答对一题得 10 分,答错一题分数归零。小蓝可以在任意时刻结束答题并获得目前分数对应的奖项,之后不能再答任何题目。最高奖项需要 100 分,所以到达 100 分时小蓝会直接停止答题。已知小蓝最终实际获得了 70 分对应的奖项,请问小蓝所有可能的答题情况有多少种?填空题,输出答案即可。答案为8335366。

2024-03-13 00:24:28 1161 3

原创 2023第14届蓝桥杯大赛软件赛省赛C/C++大学A组第1题题解:幸运数

从1遍历到9999,计算其数位与数位和,用二维数组a[sum][cnt]存储位数为cnt的数字且和为sum的数字的总数。根据乘法原理,对于一个数位和为2*sum的数,前一半数字有a[sum][cnt]种方案数,乘以后一半的方案数就是位数为2*cnt的总方案数。小蓝认为如果一个数含有偶数个数位,并且前面一半的数位之和等于后面 一半的数位之和,则这个数是他的幸运数字。根据幸运数的定义,前后一半的数位和是相同的,可以只枚举一半的数,并记录对应和的方案总数,最后将不同和的方案数相乘累计即可。填空题,输出答案即可。

2024-03-11 23:21:29 874

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除