![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 85
ygkl9698
长风破浪会有时,直挂云帆济沧海
展开
-
[C++]CSP-ST1密码锁
由样例一可知,每种状态都有81种可能对应的情况,做一个标记。最后看有多少个数被标记了n次即可。这个题我是真的不想弄目录了。原创 2023-12-14 13:03:34 · 208 阅读 · 0 评论 -
洛谷P1168中位数
我们可以将前一半大的数字放到b里,剩下的放到a里,且a中元素数量始终等于b中元素数量或b中元素数量加1。假如这个数比a.top()还要大(相等也可),我们就把他放到b里,并把b.top()放到a里,此时a.top()就是中位数。也就是说有的值要放到a内,有的要放到b内。假如这个数比a.top()还要大(相等也可),我们就把他放到b里,此时f(a)=f(b)否则,我们就把他放到a里,并把a.top()放到b里,此时f(a)=f(b)否则,我们就把他放到a里,此时a.top()也就是中位数。原创 2023-12-09 07:00:00 · 174 阅读 · 0 评论 -
[C++]市赛游记
那天我躺在家里的床上,回忆着白天发生的事:期中体测50米中,我为了超过起跑领先我的同学,腿部突然发力想要提速,却突然一疼,速度降了下来。”我想,我今年的信息学比赛,就这么草草收场了吧……第二题就有些难度了,我开始想满分的解法,涂涂画画之后,想到了一个我并不能证明正确性的方法,但是样例过了。当我看到医院给我定制的护具时,我又一次慌了:护具要求我的右腿一直抬着,保证不撕裂手术开刀的地方,可这样的话,我怎么够得到键盘呢?比赛开始了,我扫了扫四道题,感觉这次题目并不简单,但是第一题我觉得并不难,二十分后,写完。原创 2023-12-08 07:00:00 · 292 阅读 · 0 评论 -
[C++]2022CSP-JT4&2022CSP-J完整合集
不知道各位看到这道题的时候有没有觉得这道题有那么一点点背包的影子?当然我们要先排个序,只要保证靠前的点不能接在靠后的点后面就行。然后还有那么一点点的最长不下降子序列?CSP-J2022系列完结撒花。这样是不是就很简单了呢?个点,如果我们可添加。原创 2023-12-07 07:00:00 · 443 阅读 · 1 评论 -
[C++]数论(二)
当且仅当m是a和b的最大公因数d的倍数时,方程有整数解。可能不是正整数,也不一定是最小的解,因此我们要的答案是。构造有很多,而扩展欧几里得算法的解就是其中之一。至于怎么求,快速幂嘛,对吧,反正我也懒得写了嘿嘿。我想,最缓(xun)慢(su)的做法就是暴力了。是质数,我们用费马小定理也是得出一样的结论的。如果求线性的欧拉函数,则可以在线性筛中求。如果要求1~n的逆元了,怎么样才能最快?我们知道,扩展欧几里得算法求的是。因此,我们要求的乘法逆元就是。特别的,只有a和b互质时,噢,对了,大家还可以顺便把。原创 2023-12-06 07:00:00 · 193 阅读 · 1 评论 -
[C++]数论(一)
一马当先地还是暴力了,枚举1~n,逐个判断每个数是不是质数。当然因为上面的判断我们已经讲过了数学优化,所以这里我们就直接跳过最慢的部分吧。不知道大家有没有一个突发奇想,就是每个数的因子都比这个数小,所以能不能在遍历到因子的时候就把这个数删掉了呢?在上述过程中,我们发现6这个数字被删了两次,如果能每个数至多删一次的话,不就能达到线性了吗?而在C++17和C++20版中,有std::gcd()函数,要求的头文件是。在C++14版中,有__gcd()函数,要求的头文件是。当然,以上只是部分内容,敬请期待。原创 2023-12-05 07:00:00 · 463 阅读 · 1 评论 -
[C++]2022CSP-JT3
这就是它的运算树了。其实找到它之后,后面也就简单了。首先,处理这种题目的最经典的方法就是后缀表达式。比如说样例的0&(1|0)|(1|1|1&0)所以我们后面的任务就是根据这个运算树来求值和。其实这段也不难,实际上是一个经典套路。我比较喜欢的解释是,运算树的后序。所以我们就要来看后缀表达式了。那不就在树上遍历一下就行了吗?而我们这次要求的就是运算树。原创 2023-12-04 07:00:00 · 251 阅读 · 0 评论 -
[C++]2022CSP-JT1&T2
这个题就直接暴力就行了,甚至一点优化都不需要。的,所以这就变成了一个一元二次方程。我们直接使用一元二次方程的公式来解。只要判断解是否是整数即可。对于每组数据,我们知道。原创 2023-12-03 07:00:00 · 210 阅读 · 1 评论 -
[C++]模拟
什么是模拟模拟顾名思义,就是按照题目的要求,一步步写出代码。题目要求怎么做就怎么做,用代码的形式描述出来。模拟的过程(1)读题。读懂题目的意思。(2)建模。将问题抽象成模型,选择合理的算法和数据结构(比如定义数组来记录一组事物的状态)。(3)代码实现。原创 2023-12-02 07:00:00 · 520 阅读 · 1 评论 -
[C++]贪心
对于区间覆盖类的问题(区间可能有重叠,问被覆盖的区间总大小),解题时考虑按照每个区间的起点从前往后排序,然后遍历每个区间,判断当前区间是否与前一个区间相连(判断当前区间的起点在上个区间的终点之前还是之后)。也就是说,把一个较复杂的问题分解成若干子问题,对于每个子问题来说, 不从整体最优上加以考虑,只做出在某种意义上的局部最优解。将一个大数拆分成小数字的和,如果要求拆分的数量尽量少,则贪心的思路是尽量拆成大的数字,值不够了再往小的数字去拆。在最前的顺序排好,然后依次选取最优选择,构成整体最优解。原创 2023-12-01 07:00:00 · 220 阅读 · 1 评论 -
[C++]图论(二)
重复1、2,直到当前的DAG为空,或者当前图中不存在有前驱的顶点为止。在一个图上生成出的树叫做这个图的一个生成树,边的权值之和最小的生成树叫做这个图的最小生成树。每次从白点的集合中挑选出距离已有的最小生成树距离最近的白点,加入最小生成树中。n个点,以及n个点之间存在若干条权值不同的边,权值表示建这条边的代价。初始化随机一点到最小生成树的距离为0,其它点到最小生成树的距离为inf。定理: n个点,n-1条边的无向连通图,一定是树。从图中删除该顶点和以该顶点为起点的有向边。还没有选入最小生成树中的点:白点。原创 2023-11-30 07:00:00 · 181 阅读 · 0 评论 -
洛谷P3957跳房子
我的博客。原创 2023-11-28 07:00:00 · 147 阅读 · 0 评论 -
[C++]简单背包
问题模型n种物品,每种物品有1个,放入容量为m的背包中,每个物品有体积v[i]v[i]v[i]和价值w[i]w[i]w[i]求放入背包的最大价值基本方法降维参考代码:完全背包问题模型n种物品,每种物品有无数个,放入容量为m的背包中,每个物品有体积v[i]v[i]v[i]和价值w[i]w[i]w[i]求放入背包的最大价值方法1伪代码:方法2边界和解都一样f[i][j]f[i][j]f[i][j]的定义还一样此时考虑不选或者至少选一个:综上所述,f[i][j]=max(f[i−原创 2023-11-27 07:00:00 · 298 阅读 · 1 评论 -
NOIP2023第2题&洛谷P9869三值逻辑题解
但实际上,我要给出一个思想,就是T和F只要不矛盾,可以理解为同一个值。也就是说T和F抵得上U的范围,因此我们可以把T和F在一起理解为一个和U范围一样的值。发现了吧,我们还需要维护当前结点与“队长”的值是相等还是相反,而这和我在并查集中所说的银河英雄传说那道题是一样的。下面是我的构造:(先说好,第。我们来看条件吧,我们要满足的是所有变量的最终值和初始值相等。T,F的情况也差不多,只不过T和F在取反的时候和U有一定差别。如果是后者,那么并不矛盾,整个环上的值都可以是T或F。,因为T的反面是F,所以F的表示为。原创 2023-11-26 07:00:00 · 677 阅读 · 4 评论 -
[信息学][C++][数据结构]并查集
有好题我还会继续补充我的博客。原创 2023-11-25 07:00:00 · 239 阅读 · 0 评论 -
NOIP2023第1题&洛谷P9868词典题解
我的博客。原创 2023-11-24 07:30:00 · 279 阅读 · 0 评论 -
[信息学][C++][游记]2023CPS-S复赛游记
我想了想,估计他们两个是正好趁我去上厕所的时候进来的,那个时候真的很紧张。我估分100+50+15+0=165,cby估分100+35+0+15=150,ns没打算估分,因为他四题都输出了样例,然后玩了两个多小时游戏。坐我左边两个位置的是sx,其实还在HF学信息的初中生当中挺有名的,不过我对他更深的了解倒是他小学时嘲讽过我的一个好朋友jjy。第四题我感觉骗分也不简单,四个特殊性质+暴力我全想了一遍,甚至还尝试了两个,全部挂掉。所以我不理解cby在干啥,而cby怀疑我的方法的正确性,好在我考试时对拍过了。原创 2023-11-23 08:10:07 · 179 阅读 · 0 评论 -
[信息学][C++][数据结构]浅谈树状数组
6”按照二进制可拆分为“110”,没错吧。事实上,树状数组就可以解决这个问题。它就有一点倍增的思想在内了。其实树状数组的存储和使用我们到这里都讲完了,如果你注意思考的话。我们按照从低位到高位来拆分,那么6可以先拆出一个2,即。当然,这并不代表它的作用仅限于此,它同样可以实现。函数,树状数组就与它有关。当我们想要求一个数列的和时,我们就直接累加(就要改变,我们发现它实际上可以稍微移动,就是。到这里,基础的树状数组部分正式结束。这样存储的部分就结束了。好,我们继续来看,如果有了。在上面的树中,我们就能发现,原创 2023-11-22 11:48:25 · 468 阅读 · 1 评论