xzy の 未知屋
🍭查看新品🍬
CSP 2025 邮寄
初赛在本校考的,没什么说的。主要我也忘记发生甚么事了,唯独还记得当时中午和同学联机玩了下 PCL( 复赛才是正片。 去的是 GZLZ 考的。 老师说可以带吃的,结果监考老师说不能带,幸好我没有带( 早上五点半起床去学校集合,六点半多发车出发,七点多到。 话说 LZ 的楼是真的比 ZGF 好爬,但听某人说只是那栋楼好爬,其他楼没去过咱也不知道( 考后和同学交流想法。第一题类似桶排,考场上脑抽写了个这个:循环一遍找字符串,然后再排序,当时大样例没输出给我吓傻了,写完第二题才想起来可以桶排,感谢老天。 第二题我是用模拟做的,数据才 100 的确有点小了,双重循环大样例全过手搓数据也过。 第三题打了个暴力但不知道为什么有 WA /fn 第四题只能骗个分。 预估 200+。 听同学说有人在代码里写了这个注释: 1// 监考老师好,我该写的写完了,该暴力的打完了,骗分也尽力了,你说得对但我要开始补觉了,没有急事别叫我,谢谢! 神人!!! S 组一脸迷茫,第一题暴力依旧 WA 也不知道为啥,可能和我 400+ 行的代码有关吧(11 KB)。 后面全靠骗分,有题有个部分分说保证全为 1 的那道难道不是 ...
题解:P7063 [NWRRC 2014] Digits
题解:P7063 [NWRRC 2014] Digits 如果你样例过了但答案错了,记得使用 long long 哦! 思路 题目让我们找出 $n$ 个数,并且这 $n$ 个数的各个位上的数字之和要最小,求出这个和。 对于样例 $1$,可以为 $1$ 和 $10$,和为 $11$。 那么考虑暴力枚举 $i$($i$ 的枚举范围要尽可能大),对于当前的 $i$,我们将它的数位和定义为 $t$: 我们将存放数位和为 $t$ 的和增加 $i$,用来存放各种搭配方案的答案。 我们将存放数位和为 $t$ 的个数增加 $1$,用来判断这种搭配方案的个数是不是 $n$ 了,如果是那么就对这种搭配方案的结果取最小值。 最后输出最小值即可。 代码 1234567891011121314151617181920#include<bits/stdc++.h>#define endl '\n'using namespace std;long long n, t, ans = INT_MAX, cnt[5005], sum[5005];string s;int main()& ...
题解:P8727 [蓝桥杯 2020 国 A] 填空问题
题解:P8727 [蓝桥杯 2020 国 A] 填空问题 Problem A. 计算从 $1$ 到 $2020$ 中合数的个数。 合数是指除了 $1$ 和它本身外还有其他约数的数(大于 $1$ 的非质数)。 考虑遍历每个数($2$ 到 $2020$),检查是否存在除 $1$ 和自身外的约数(只需检查到平方根即可)。 答案为 $1713$。 Problem B. 计算从 $1900$ 年 $1$ 月 $1$ 日到 $9999$ 年 $12$ 月 $31$ 日中,年月日的数字表示中包含数字 $2$ 的天数。 考虑遍历每一天,分别检查年、月、日的数字中是否含有 $2$。这里要注意闰年的判断(能被 $4$ 整除但不能被 $100$ 整除,或能被 $400$ 整除)。使用数组存储每月的天数(区分闰年)然后判断即可(这里可以用 to_string() 函数转成字符串进行判断)。 答案是 $1994240$。 Problem C. 给定一个长度为 $200$ 的字符串 $s$,求本质不同的单调递增子序列个数(相同字符序列视为本质相同)。 考虑定义 $dp_i$ 表示以第 $i$ 个字符结尾的本质不同 ...
题解:P9239 [蓝桥杯 2023 省 B] 填空问题
题解:P9239 [蓝桥杯 2023 省 B] 填空问题 A 问题 给定一个长度为 $100$ 的数组,数组元素为数字 $0$ 到 $9$。数组内容如下: 15 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1 0 0 9 4 8 0 9 1 2 8 5 0 2 5 3 3 需要找到所有长度为 $8$ 的子序列,这些子序列可以组成一个 yyyymmdd 格式的日期,其中 yyyy 表示年份(只能为 $2023$),mm 表示月份($01$ 至 $12$),dd 表示天数($2023$ 年不是闰年则 $2$ 月有 $28$ 天)。子序列元素必须保持数组中的下标顺序(但不一定连续),且相同日期只统计一次。 思路 先将年份固定为 $2023$:子序列的前四个数字必须依次为 $2$、$0$、$2$、$3$,且下标递增 ...
题解:P10414 [蓝桥杯 2023 国 A] 2023 次方
题解:P10414 [蓝桥杯 2023 国 A] 2023 次方 思路 为了求解 $2^{(3^{(4^{(\ldots ^{2023})})})}$(即指数塔从 $2$ 开始,指数为 $3$,再指数为 $4$,依此类推至 $2023$),需要利用模运算的性质和数论工具,因为直接计算巨大的指数塔不可行。$2023$ 可分解为 $2023 = 7 \times 17^2 = 7 \times 289$,且 $7$ 和 $289$ 互质(因为 $\gcd(7, 289) = 1$,$289 = 17^2$ 不含因子 $7$)。因此,使用中国剩余定理(CRT),分别计算模 $7$ 和模 $289$ 的结果,再组合得到模 $2023$ 的解。 Step 1:计算 $2^ {(3^{(4^{(\ldots ^{2023})})})} \mod 7$。 模数 $7$ 是质数,且 $\gcd(2, 7) = 1$,因此可应用欧拉定理:$\phi(7) = 6$,有 $2^6 \equiv 1 \mod 7$。 设指数 $k = 3^{4^{\cdots^{2023}}}$,则需求解 $2^k \m ...
题解:P12004 【MX-X10-T0】[LSOT-4] 嗯欧哎劈
题解:P12004 【MX-X10-T0】[LSOT-4] 嗯欧哎劈 思路 考虑直接模拟。 可以在读入之后按照题意先计算三个奖项的分数线,再进行判断。 我们定义 fir, sec, thi 分别表示一至三等奖的分数线,那么可以这样进行计算(数组 a 表示所有省的一等奖分数线,因为题目已经写了从大到小进行排序,我们不需要再进行排序了): 123fir = a[1];sec = a[3] - 1;thi = 40; 那么如果判断是这样写: 12345678if(x >= fir) cout << "sidekick" << endl;if (x >= sec) cout << "sgnd" << endl;if (x >= thi) cout << "cxq" << endl;if (x < thi) cout << "kiku" << endl; 就会导致一等奖分数线及以上的成绩会同 ...
题解:P12172 [蓝桥杯 2025 省 Python B] LQ 图形
题解:P12172 [蓝桥杯 2025 省 Python B] LQ 图形 思路 本题考察模拟。 不规则图形不方便输出?没关系,分成两部分(两个矩形)即可,大小分别为 $h \times w$ 和 $w \times (v + w)$。 代码 第一个矩形的输出代码: 123456for (int i = 1; i <= h; i++){ for (int j = 1; j <= w; j++) cout << "Q"; cout << endl;} 第二个矩形是差不多的,只需要调整 $i$ 和 $j$ 的范围即可。 完整代码: 123456789101112131415161718192021222324#include <bits/stdc++.h>#define endl '\n'using namespace std;int w, h, v;int main(){ // ios::sync_with_stdio(false); ...
题解:P12154 [蓝桥杯 2024 省 Java B] 逃离高塔
题解:P12154 [蓝桥杯 2024 省 Java B] 逃离高塔 思路 一个数的立方数个位仅由该数的个位数决定。因此,我们只需确定哪些个位数的立方结果以 $3$ 结尾并统计以这些个位数结尾的数的出现次数。 因为在 $0$ 至 $9$ 这个范围内,只有 $7$ 的立方数个位是 $3$($7^3=343$)。 然后从 $1$ 到 $2025$ 中每 $10$ 个就会有一个数的个位为 $7$,最小为 $7$,最大为 $2017$。 所以,我们用这些数构成等差数列,首项为 $7$,末项为 $2017$,公差为 $10$。总项数公式为: $$ \text{项数} = \frac{\text{末项} - \text{首项}}{\text{公差}} + 1 = \frac{2017 - 7}{10} + 1 = 202 $$ 因此答案为 $202$。 代码 C++ 代码: 123456789101112#include <bits/stdc++.h>#define endl '\n'using namespace std;int main(){ / ...
题解:CF411C Kicker
题解:CF411C Kicker 思路 队伍一先安排,那么队伍二想要获胜一定安排能踢过队伍一的球员。 先看队伍一,怎么保证队伍一必胜呢?只要队伍一的攻击球员至高无上特别厉害,攻击力要比队伍二任意球员的防守力都要大,那么无论队伍二怎么安排防守都踢不过。同样的,只要队伍一的防守球员至高无上特别厉害,防守力要比队伍二任意球员的攻击力都要大,那么无论队伍二怎么安排攻击都踢不过。队伍二亦然。 结论:只要一个人的攻击力大于对方二人的防守力且另一个人的防守力大于对方二人的攻击力则该队伍获胜,反之亦然。如果两队都没有杰出的球员能同时踢败对方的两位球员,那么就没有保证胜利的安排方案。 当然,队伍二不能套用队伍一的代码,因为队伍二是根据队伍一进行选择的,而以队伍二为基准进行判断时我们并不知道队伍一的安排,所以要把队伍一每一种安排都列举出来。 代码 12345678910111213141516171819#include <bits/stdc++.h>#define endl '\n'using namespace std;int a[2], b[2], c[2], d[2 ...
题解:P11950 [科大国创杯初中组 2023] 评分
题解:P11950 [科大国创杯初中组 2023] 评分 思路 模拟题。 每次读入时先累计分数并统计最大和最小分值,读入完后减去后最大和最小分值后再取平均数。 最后排完序并输出即可。 代码 12345678910111213141516171819202122232425262728293031323334353637#include <bits/stdc++.h>#define endl '\n'using namespace std;int n, m, ma = -1, mi = 105, sum, t;struct STRUCT{ double s; int id;} a[105];bool cmp(STRUCT x, STRUCT y){ if (x.s != y.s) return x.s > y.s; return x.id < y.id;}int main(){ cin >> n >> m; for (in ...
🐟认真摸鱼中

xzy
An OIer の 404 Profile
个人主页
公告栏
Built by heishao, used by xzy.
感谢 ed-builder 提供的服务器以构建说说,感谢 haofafa 提供的服务器以构建 artalk 评论
网站资讯
文章数目 :
12
本站总字数 :
6730
本站访客数 :
本站总访问量 :
最后更新时间 :
评论复制本文地址
随便逛逛昼夜切换关于我主题设置切换全屏打印页面