
Other Contests
文章平均质量分 84
其他比赛
Happig丶
我的孤独,虽败犹荣
展开
-
第十二届蓝桥杯国赛 C++ 大学B组 题解
目录A. 带宽 B. 纯质数 C. 完全日期 D. 最小权值 E. 大写 F. 123 G. 异或变换 H. 二进制问题 I. 翻转括号序列 J. 异或三角 前言因为自己的大意马虎和迷之自信,还有一些其他原因。去年拿国一,又训练了一年反而退步到了国二。总之还是个人原因,不管为人还是处事,一定要谦虚谨慎,不断进取,自我反省。A. 带宽答案200/8 = 25B. 纯质数答案1903代码先欧拉筛出所有质数,然后对每个数按位判断,注意素数标记数组要把 111 和 00原创 2021-07-07 16:09:12 · 5539 阅读 · 13 评论 -
2021 蓝桥杯省赛第一场 C++ 大学 B 组
解题思路1MB=210KB=220B1MB = 2^{10} KB = 2^{20}B1MB=210KB=220B,1B=8 bit1B = 8~bit1B=8 bit,实际上就是求256MB256MB256MB有多少个32 bit32~bit32 bit。答案:67108864#include <bits/stdc++.h>using namespace std;#define ENDL "\n"typedef long long ll;.原创 2021-04-18 22:33:08 · 19164 阅读 · 28 评论 -
2020 天梯赛 L3 - 1(判断起点出发的路径是否都只到达终点)
传送门题目大意给出一个nnn个顶点mmm条边的有向图,还有起点和终点,求出起点和终点之间的路径条数,并判断从起点出发的所有路径是都能到达终点。解题思路首先,如果求出两点间的路径数目完全可以如下一个dfs搞定:void dfs(int u) { if (u == b) { ans++; return; } for (auto v : G[u]) { dfs(v); }}但是无法判断是否从aaa出发的所有路径都只原创 2021-01-12 12:09:25 · 225 阅读 · 0 评论 -
2020 天梯赛 L2 - 3(完全二叉树后序确定层次序)
题目大意给出完全二叉树的后序遍历,求出其层次遍历解题思路反思L2应该除了第二题其他都拿满的,但是第三题没写出来,作为ACMer,确实应该反省。可能当时确实没有思考过这个问题,总而言之,自己基础还是不太牢!思路实际上,完全二叉树在后序遍历时,除了最后一层前面的每层都是满的,那么只需要递归到恰好nnn个节点停止,然后回溯时将遍历操作的输出变成建树的赋值,最后直接输出树就行了…//// Created by Happig on 2020/11/29//#include <bits/st原创 2020-11-29 21:06:02 · 363 阅读 · 0 评论 -
2018 天梯赛 L3-1 直捣黄龙(Floyd+打印路径+打印解的个数)
题目大意给出无向带权图,确定起点和终点,特殊地每个点都有点权。现在需要求出一条起点到终点的最短路并打印路径,该路径满足:起点到终点的距离最短;若最短路不唯一选择经过节点最多的路径;若路径仍然不唯一选择点权和最大的路径。此外还需要求出最短路的数量(这里指广义的最短路,只考虑距离)。解题思路这种多种条件限制的“最短路”之前见过几次,写法就是当前一个条件为相等时,那么考虑后一个条件。对于经过节点数,设置数组cnt[i][j]cnt[i][j]cnt[i][j]表示i→ji \rightarrow j原创 2020-11-22 17:11:19 · 396 阅读 · 0 评论 -
第十一届蓝桥杯大赛软件类决赛 C/C++ 大学 B 组 试题 C: 阶乘约数(n!质因数分解)
解题思路实际上就是一个数学知识加上因数个数定理的裸题了。看到约数个数,我们不难想到约数个数定理:设一个数xxx的唯一分解式为p1a1p2a2...pnanp_1^{a_1}p_2^{a_2}...p_n^{a_n}p1a1p2a2...pnan,那么其因数个数为(a1+1)(a2+1)..(an+1)(a_1+1)(a_2+1)..(a_n+1)(a1+1)(a2+1)..(an+1)但是阶乘数很大,显然没有办法求出阶乘然后质因数分解。考虑n!n!n!的所有质因数都不会超过nn.原创 2020-11-14 20:00:38 · 1030 阅读 · 0 评论 -
第十一届十月份蓝桥杯省赛 H - 子串分值和:求字符串所有子串的不同字符个数和(思维/线段树)
题目大意解法一:标答这种解法应该就是标答了吧,在这里学到的,简单精炼而又高效,orz对于一个长度为nnn的字符串,若我们考虑所有子串的个数,可以考虑以下做法:考虑第iii个字符,它和前面字符加起来的长度为xxx,它和后面字符加起来的长度为yyy,那么包含字符iii的所有子串就有x×yx \times yx×y个例如对于字符串abcdabcdabcd,其子串的个数和为1×4+2×3+3×2+4×11 \times 4+ 2 \times 3 + 3 \times 2+4 \times 11×4+2原创 2020-10-28 19:18:58 · 970 阅读 · 1 评论 -
蓝桥杯训练 k进制数的数位交换问题
问题进入k进制数的数位交换问题,就是给出一个k进制的数,求出其中任意两个数位交换后的大小我们先以十进制数123为例,假如交换第一位和第二位变成213。那么这两个数之间存在什么关系呢,我们注意到百位上本来是1,变成了2之后原数就要增加(2-1)*100;十位上本来是2,变成1之后原数就要增加(1-2)*10。那么再考虑交换前左边的数小于右边的数,就变成了减的较多。总之,拿每一位变化后的数减去变化...原创 2020-02-23 16:08:30 · 367 阅读 · 0 评论 -
EOJ Monthly 2020.9 C. 最小表示(贪心)
传送门题目大意给出一个nnn位的二进制数bbb,找出一个长度为mmm的序列ccc,每一位为ci(0,1,−1)c_i(0,1,-1)ci(0,1,−1),使得:∑i=0nbi∗2i=∑i=0mci∗2i\sum_{i=0}^nb_i*2^i = \sum_{i=0}^mc_i*2^i∑i=0nbi∗2i=∑i=0mci∗2i输出序列ccc使得其中1,−11,-11,−1的总个数最少解题思路考虑一串连续的111111111111111111,对应在序列ccc中,如果1,−11,-11,原创 2020-09-30 08:24:17 · 153 阅读 · 0 评论 -
2020智算之道复赛 D - 分数(素筛)
这题我背最大的锅,这种题目显然是考虑所有分母的LCMLCMLCM,今年的校赛我还出过一道这样的题,然而比赛时我竟然是找规律凭第一感觉判断的,真的tcl对于第iii个数,我们需要的只是考虑他的前缀所有分母的LCM(1,2,3,...,i−1)LCM(1,2,3,...,i-1)LCM(1,2,3,...,i−1),而LCMLCMLCM的本质就是取同类质因子的maxmaxmax,打表或者手写前几十个数,不难发现这样的规律:只有含单个质因子的数才会贡献一次答案,而贡献的就是它的唯一质因子。那么对于这样的数我们.原创 2020-08-11 09:48:41 · 224 阅读 · 0 评论 -
2020智算之道复赛 C - 有向无环图(思维+二进制拆分)
首先最重要的一点是要知道图如何去画,以四个点为例,一般也许会画上下左右四个点的图,但是这样的话很难发现规律,实际上因为是有向无环图,那么我们考虑所有节点排成一条链,然后像找任意两点间的连线那样考虑,如下图所示:很容易发现以下规律,设xxx为图的点数,yyy为路径数:当x=2x=2x=2时,y=1y=1y=1当x=3x=3x=3时,y=2y=2y=2当x=4x=4x=4时,y=4y=4y=4当x=5x=5x=5时,y=8y=8y=8…那么得到,当图有xxx个节点时,路径数为2x−22^{.原创 2020-08-11 09:22:55 · 431 阅读 · 0 评论 -
智算之道第二场 情报站(并查集)
题目大意现在我方已经查明,敌人通信所使用的加密方式依赖于一个长度为 nn 的数列,只要得知了这个数列中每个数的值,我方便可破解敌方的通信。通过深入敌人内部的内线人员的艰苦奋斗,我方逐渐获得了一些有用的情报,通过这些情报,整个数列正在被不断地破解。先后有mmm条情报被得知,每条情报是以下两种情况之一:情况111:知道了数列中第xxx个数的值情况222:知道了数列中第xxx个数和第yyy个数的和每得知一条情报,我方都试图破解数列中元素的值。作为情报部门核心技术人员的你,请编程实现如下功能:每次得知一条原创 2020-07-21 16:59:38 · 266 阅读 · 0 评论 -
EOJ Monthly 2020.7
A - 打字机 (思维)显然如果使用第二种构造,aaa和bbb是成对出现的,如果aaa的数目较多就必须再使用第一种构造,因此:aaa的数目和bbb的数目相同且aaa均在bbb的前面;或者只有aaa,就是happyhappyhappybbb的数目大于aaa的数目是deaddeaddead否则为sadsadsad#include <set>#include <map>#include <stack>#include <queue>#inclu原创 2020-07-19 21:42:15 · 137 阅读 · 0 评论 -
2019 CSP-J 纪念品(完全背包+思维)
题目描述小伟突然获得一种超能力,他知道未来TTT天NNN种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易 无限次:任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品;卖出持有的任意一个纪念品,以当日价格换回金币。每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪念品也可以当日卖出换回金币。当然,一直持有纪念品也是可以的。TTT 天之后,小伟的超能力消失。因此他一定会在第TTT天卖出所原创 2020-07-11 09:32:10 · 1809 阅读 · 0 评论 -
L. Lottery Tickets(结论+枚举)
传送门–1.题目大意:给出0~9每个数字的个数,问这些数排列起来能组成的最大的能整除4的整数是多少2.首先必须知道一个重要的性质:一个长度大于等于2的十进制整数xxx,如果能整除某个非零个位数yyy,那么只需满足xxx的最后两位能整除yyy我太菜了,不会证明,实际上打个1000个数的表就能看出来了…那么我们容易想到,枚举100以内的4的倍数,注意是作为二位数表示,即"00,04,08,12…",最后求出所有的数中最大的即可,但是有以下几个细节需要注意:当只有0时,直接输出0,这样就避免了前导原创 2020-05-31 18:36:01 · 978 阅读 · 0 评论 -
D. Disaster Recovery (斐波那契数列性质+MST)
传送门1.题目大意:给出斐波那契数列,每个下标成为一个节点,两个节点之间的距离为二下标的斐波那契数之和。现在给出其中n个节点,构造最小生成树,并且使得生成树中度数最大的节点的度数尽可能的小2.首先有一个很迷或人的条件,就是如何使度数最大的节点的度数尽可能的小。难道说要在MST时二分答案?当然不是,如果有权值相同的边,我们必须做出权衡选择。但是斐波那契的下标不会重复,那么两点之间的权值和不会相同!也就是说,斐波那契数列中任意两组不同的数之和不会相同那么我们直接构造MST,但是这时又出现一个问题,也就原创 2020-05-31 17:56:29 · 1203 阅读 · 0 评论 -
2020 年 “联想杯”全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛[待补]
传送门A.Archmage(思维)1.题目大意:法师初始有n点蓝且为满蓝状态,每秒先放一个消耗x点蓝的技能,接着恢复y点蓝,问m秒后能放几次技能2.首先不难发现如果y≥xy \geq xy≥x那么每秒都能放一次技能;否则,尽管蓝量不能超过n,但是我们依旧可以先累积m−1m-1m−1秒恢复的蓝量(第mmm秒累积的蓝没用),再除以xxx看看能放多少次技能,注意到答案不能超过mmm#include <set>#include <map>#include <stack&原创 2020-05-31 17:38:00 · 399 阅读 · 0 评论 -
2nd SCPC - L 破坏守序序列(数学证明+三分)
首先如果序列为奇数,那么可以考虑枚举中位数,但是如果序列为偶数呢,这个如果枚举的话一定超时,但是又没什么好的办法,那么就证明一下答案序列一定为奇数图片来自Visors(懒得手敲了好麻烦):有了上述证明,那么我们枚举每个数作为中位数,在能取到的情况下,每次同时取kkk个比它大的和kkk比它小的组成序列但是如果这里仍然枚举的话,时间复杂度仍是O(n2)O(n^2)O(n2),过不了首先假设中位数为ama_mam,已经取了比它小的最小的a1a_1a1和最大的ana_nan,那么平均数为:a1+.原创 2020-05-25 16:17:09 · 396 阅读 · 0 评论 -
2nd SCPC - K 无限矩阵(二进制规律+前缀和)
首先找每一列的周期规律,将矩阵按正常二进制来看是这样的:然后我们把最右边看着第一列,依次向左递增每一列的周期为2i2^i2i,且前2i−12^{i-1}2i−1个为000,后2i−12^{i-1}2i−1个为111只要给出起始的第uuu行和第ddd行,那么第iii列在这部分区间的1的个数等于sum(d)−sum(u−1)sum(d)-sum(u-1)sum(d)−sum(u−1)而sum(x)sum(x)sum(x)的计算方法为:先计算出该行前有xxx个周期,接着对周期取模,看答案resres.原创 2020-05-25 15:46:17 · 425 阅读 · 0 评论 -
2nd SCPC - I 奇怪的圆环(构造)
首先考虑一个升序(或者降序)的序列a1,a2,a3,...,an{ a_1,a_2,a_3,...,a_n }a1,a2,a3,...,an显然已经有了a2≥a1,a3≥a2,...,an≥an−1{ a_2 \geq a_1,a_3 \geq a_2,...,a_n \geq a_{n-1} }a2≥a1,a3≥a2,...,an≥an−1那么肯定有(a2+an)>a1,(a1+a3)>a2,...,(an−2+an)>an−1{ (a_2 + a_n) &g.原创 2020-05-25 15:26:19 · 288 阅读 · 0 评论 -
2020 年 “游族杯” 全国高校程序设计网络挑战赛[待补]
比赛传送门A Amateur Chess Players题意比题难系列…实际上就是先手的棋子个数只能大于后手他才能赢否则必输#include <set>#include <map>#include <stack>#include <queue>#include <math.h>#include <cstdio>#include <string>#include <cstring>#incl原创 2020-05-23 23:38:25 · 402 阅读 · 0 评论 -
2020 CodeJam Round 1A
前言第一道题的第二个低保都没吃到手,第二道题也就吃了两个低保,太菜了。最后的测试点看起来不是思维就是暴力,都不想写了,算了,没资格就没资格吧,来年再战比赛链接A Pattern Matching//只吃到一个低保,第二个点写了好久写崩了,不想改了#include <iostream>#include <string>using namespace std;...原创 2020-04-11 21:07:58 · 358 阅读 · 0 评论 -
Code Jam 2020 Qualification Round
比赛链接Vestigium(签到)简单模拟#include <iostream>#include <cstring>using namespace std;int a[105][105];int vis[105];int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); in...原创 2020-04-08 15:09:32 · 305 阅读 · 0 评论