自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

No_wonder の 小站

蒟蒻的学习资料都在这里啦!

  • 博客(29)
  • 收藏
  • 关注

原创 AFO-退役记

写在前面今天是我最后一次来奥赛机房了吧,从今之后,我会放弃竞赛这条路,继续行走在文化课上。大学时会选择计算机的专业,那时再回头看这段经历,或许只会一笑罢。回顾我短暂的OI一年,我没有得到满意的成果。但是我仍能用过程来安慰自己。写下这篇记录,用以排忧消愁,但是孤有一人的机房里,键盘的敲击声却显得沉重。开端我身在弱省弱市,许多人都没听说过的地方,山西临汾。我们学校是唯一在市内搞奥赛的高中。我在初三毕业时,才接触到OI,那时是我对编程产生了兴趣,于是去了市内为数不多的几个编程班之一。因为学的人的确是不多,

2020-12-09 15:15:20 702 5

原创 2020 NOIP 退役之战

Day —2今天要到了学校OJ的管理员,改了一些东西。撤下了2019年发布的一周任务,已死的bzoj与codevs,补充了一下模板区,然后建了个新题当然我并不会写数据(lfyzoj上的原创题题解都给上啦!欢迎来做题QwQ。Day -1今天开门红,打车去高铁的路上全是红灯,根据RP守恒定律,明天的noip必RP++车上看了一车小说,旁边的lpj直接睡觉(下车和我在太原理工大的哥哥联系了一下,今晚有机会的话去面。下了车又去打车,那个打车区候客通道又让我想起了在济南等了一个小时的经历……太原的记录是

2020-12-04 15:59:49 261 1

原创 模拟退火

模拟退火是在多峰函数上寻找最值的概率算法,其结果取决于人品。#include<bits/stdc++.h>#define ri register intusing namespace std;int n;int x[1010],y[1010],w[1010];double de=0.998;double avex,avey,avew;double clac(double qx,double qy){ double res=0; for(ri i=1;i<=n;i++)

2020-12-03 19:14:22 129

原创 树链剖分求LCA

#include <cstdio>#include <cstdlib>#define maxm 200010struct edge{int to,len,next;}E[maxm];int cnt,last[maxm],fa[maxm],top[maxm],deep[maxm],siz[maxm],son[maxm],val[maxm];void addedge(int a,int b,int len=0){ E[++cnt]=(edge){b,len,last[

2020-12-03 19:10:52 107

原创 01最短路

具体实现是用双端队列,0排在队头,1排在队尾,这样搜索的时候就会优先走0路#include<bits/stdc++.h>#include<queue>using namespace std;int n,p,k,maxn;int head[10010],cnt;int d[10010],vis[10010];struct Edge{ int to; int next; int dis;}e[20020];void add_edge(int from,int to

2020-12-03 19:07:59 572

原创 扩展欧几里得

利用欧几里得算法回溯的过程,构造出不定方程的一个解#include<bits/stdc++.h>using namespace std;long long a,b;long long x,y;void exgcd(long long a,long long b){ if(b==0) { x=1; y=0; return ; } exgcd(b,a%b); long long temp=x; x=y; y=temp-a/b*y;}int main(){

2020-12-03 19:03:33 55

原创 快速幂

利用分治,加快幂的求值,模板题中这篇代码过不去。#include<bits/stdc++.h>#define ri register int#define ull unsigned long long#define ll long longusing namespace std;ull n,m;ll cnt;ull ksm(ll base,ull pow){ ll res=1; while(pow) { if(pow&1) res=res*base; el

2020-12-03 19:01:25 59

原创 欧拉线性筛

欧拉线性筛时间复杂度是O(n)O(n)O(n)的,它保证了每个数只被他最小的质因子筛一遍。同时,欧拉筛的过程中也可以求出欧拉函数ϕ(n)\phi(n)ϕ(n)欧拉线性筛#include<bits/stdc++.h>using namespace std;bool isp[100010000];int pri[1000100],cnt;int n,q;int main(){ std::ios::sync_with_stdio(0); cin>>n>>q;

2020-12-03 18:56:55 128

原创 埃拉托斯特尼筛法

得到自然数n以内的全部素数,必须把不大于 n\sqrt nn​的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去…。时间复杂度 $O(nlognlogn) $,小数据可用#include<bits/stdc++.h>using namespace std;bool prime[100010];int

2020-12-03 18:47:25 244

原创 2020年lfyz算法设计大赛赛后题解

这场是高一同学们的第一场考试呢(事先做完题然后两分钟AK的高二的我们都是屑春来其实就是问nnn个数的最大公因数(gcd)(gcd)(gcd)。方法是这样的,我们考虑三个数的情况,只需要先算前两个数的的gcdgcdgcd,然后用这个gcdgcdgcd去与第三个数匹配得到的gcdgcdgcd就是答案,扩展到n个数,只需要用gcdgcdgcd不断递推就可以我这里提供gcdgcdgcd的写法,使用欧几里得算法就可以快速得到答案#include<bits/stdc++.h> //万能头,包

2020-12-02 18:42:14 233

原创 学习笔记——模拟退火

真正的人品永远无惧于参数的调控模拟退火模拟退火算法来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。 ——百度百科换句话说,固体的冷却就相似于一个多峰函数,而最后内能最小的状态,就是一整个函数的最小值。模拟退火实际上模拟的就是这个过程。我们给他设置一个初始温度T0T_0T0​(足够大),在设置一个降温系数δ\deltaδ(略小于1)

2020-11-24 18:16:45 631

转载 学习笔记——分层图

分层图刚听到这个思想的时候,蒟蒻实际上是被唬住了,后来学懂了发现不过如此啊!!!原blog分层图求最短路分层图的引入问题是这样的:假设你要从图中的A点走到B点,并且你有k次机会免费走过某条边,那么请问最短路有多大?这个问题可以拿动态规划解决,不过我们先看如何用分层图解决这个问题。我们建k+1层图。然后有边的两个点,多建一条到下一层边权为0的单向边,如果走了这条边就表示用了一次机会。对于数据:n = 4,m = 3, k = 20 1 1001

2020-10-13 17:04:02 271

原创 学习笔记——树状数组

树状数组树状数组,就是用数组来模拟树形结构。可以方便的实现单点更新,单点查询,区间查询,区间更新常数比线段树小很多,也比线段树好打,但是实际上树状数组能解决的问题线段树都可以解决。介绍树状数组假如我们有一个数组,要实现logn级别的区间查询,那么该怎么办呢。我们考虑将这个数组建在一棵树上,每一个节点代表一段区间(这点在我线段树的blog里讲解了),树状数组就是由此产生的。这就是一个树状数组(原图)下面的是原数组,用a[i]代替,树状数组设为c[i]那么显而易见c[1]=a[1]c[1]

2020-10-11 18:30:29 112

原创 2020 - CSP -S 游记

“我测了你的了,全是WA!!!”

2020-10-11 14:35:33 382 1

原创 2020秋清北学堂秋季冲刺营游记

9.30坐了6个小时高铁,下来又等了一个小时出租车QAQ,蒟蒻等的花儿都谢了。下来的时候被济南火车站惊艳了一下,随后一个小时对济南交通情况与生活气息的观察(等出租车)给了我一种我很熟悉这里的错觉QAQ。真是令人愤懑。附图—济南火车站P. S. 这里的游记是我等出租车的时候写的...

2020-09-30 19:16:58 227 1

原创 实用工具

LateX符号大全数学工具

2020-09-25 18:04:58 77

原创 学习笔记——数学期望

期望蒟蒻在上个暑假才了解了一部分数学期望,今天来专门学习一些期望的基础概念与知识定义在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。需要注意的是,期望值并不一定等同于常识中的“期望”——“期望值”也许与每一个结果都不相等。期望值是该变量输出值的平均数。期望值并不一定包含于变量的输出值集合里。大数定律规定,随着重复次数接近无穷大,数值的算术平均值几乎肯定地收敛于期望值。——百度百科如是说

2020-09-25 17:53:26 1464

原创 学习笔记——链表

链表链表是一种很重要的数据结构。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。实际上我刚学链表的时候是习惯用指针进行实现,后来习惯用结构体中前驱,后继或者数组等逻辑指针方式实现(因为蒟蒻对物理指针的运用实在是一言难尽单链表单链表就是简单的从头结点一个一个连接而成的单向链表。尾指针指向NULL。链表便于创建节点,删除节点,访问节点代码就不贴了。可以在这里查看循环

2020-09-15 17:52:11 98

原创 学习笔记——运算符

位运算故事是这样的,蒟蒻今天开心的做到了2019年提高组D1T2,突然发现自己不知道异或运算是个什么东西,这放考场上不就当场凉凉。吓得写篇文章学习位运算。类型百度百科说有七种含义c++按位与a & b按位或a | b按位异或a^b按位取反~a左移b位a<<b带符号右移a>>b不带符号右移a>>>b具体是什么样子可以自行查看...

2020-09-10 11:00:22 101

原创 学习笔记——乘法逆元

乘法逆元本文来自这里!乘法逆元是数论中重要的内容,也是 ACM 中常用到的数论算法之一。所以,如何高效的求出乘法逆元是一个值得研究的问题。这里我们只讨论当模数为素数的情况,因为如果模数不为素数,则不一定每个数都有逆元。定义在modpmod pmodp的意义下我们把 xxx 的乘法逆元写作为x−1​​x ^ {-1}​​x−1​​。乘法逆元有如下的性质:乘法逆元的一大应用是模意义下的除法,除法在模意义下并不是封闭的,但我们可以根据上述公式,将其转化为乘法。下面我们看几种求乘法逆元的方法。

2020-09-01 18:21:15 208 1

转载 学习笔记——扩展欧几里得

扩展欧几里得欧几里得算法众所周知,扩欧是从欧几里得来的。本部分来自这里链接内有两种证明欧几里德算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b)=gcd(b,a mod b)。gcd(a,b) = gcd(b, a \bmod b)。gcd(a,b)=gcd(b,amodb)。算法来自于这个定理两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。证明a可以表示成a=kb+ra = kb + ra=kb+r

2020-08-31 16:23:27 279

原创 对新oier的一些建议

欢迎大家前来颓废学习信息学奥赛!我是你们的蒟蒻学长No_wonder_!现在我给大家介绍一下本学科竞赛与一些建议。信息学奥赛是什么信息学奥赛是学计算机编程,一门令人自闭十分有趣的学科,我们主要学习的是各种各样的算法(当然前半年主要学的是C++语法),学习本奥赛是非常困难的过程,因为这个课程本身与文化课脱节不像其他科目可以某方面提高成绩,学下来需要兴趣与颓废坚持。信息学奥赛并不如其他人说的那么简单,甚至要难很多,需要投入很多时间在学习各种语法,算法与数据结构等中,是其他奥赛花费的时间的数倍,也不要抱怨,

2020-08-16 21:21:56 190

原创 学习笔记——RMQ

RMQ蒟蒻最近写线段树写自闭了QAQ,就来补一篇RMQ博文。RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。朴素算法每次询问就一个一个搜,每次查询效率为O(n),本蒟蒻都觉得简单了所以就不写了线段树线段树可以做此类问题,不过线段树的编写对于初学者不太友好(本蒟蒻就自闭了)蒟蒻抄来的参考代码#include

2020-08-12 19:35:32 134 1

原创 模板库

No_wonderの模板们更多模板蒟蒻就学了一点点东西还要挑选重点,距离建立一个成熟的模板库还是很远na,加油!!!归并排序 洛谷P1177#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int MAXN=1e5+5; //100005 int a[MAXN], temp[MAXN], n;void MergeSort(int l

2020-08-11 16:36:27 702

原创 学习笔记——线段树

线段树本文主要来自百度百科和这篇blog线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。长这样对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。基本结构与建造线段树是建立在线段的基础上,每个结点都代表了一条线段[a,b]。长度为1的线段称为元线段。非元线段都有两个子结点,左结点代表的线

2020-08-11 15:55:32 302 1

转载 学习笔记——树链剖分

树链剖分蒟蒻在做LCA时发现自己把树链剖分忘了QAQ,于是蒟蒻回来补一篇树链剖分。本文大部分来自这里!树剖是通过轻重边剖分将树分割成多条链,然后利用数据结构来维护这些链(本质上是一种优化暴力),保证每个点属于且只属于一条链,这里的数据结构包括树状数组、BST、SPLAY、线段树等(都不会QAQ)明确概念:重儿子:父亲节点的所有儿子中子树结点数目最多(size最大)的结点;轻儿子:父亲节点中除了重儿子以外的儿子;重边:父亲结点和重儿子连成的边;轻边:父亲节点和轻儿子连成的边;重链:由多条重边

2020-08-11 11:57:51 253

原创 学习笔记——LCA

LCALCA,即最近公共祖先,在图论中应用比较广泛。LCA的定义如下:给定一个有根树,若节点z同时是节点x和节点y的祖先,则称 z 是 x,y 的公共祖先;在 x,y 的所有公共祖先当中深度最大的称为 x,y 的最近公共祖先。下面给出三个最近公共祖先的例子:显然,从上面的例子可以得出, LCA(x,y)即为 x,y 到根节点的路径的交汇点,也是 x 到 y 的路径上深度最小的节点。向上标记法求LCA求LCA最直接的方法,单次查询的时间复杂度最坏为 O(n)(看起来好像还挺快的,不过什么题会只有一

2020-08-10 21:06:49 284

原创 学习笔记——差分

差分差分(difference)又名差分函数或差分运算,差分的结果反映了离散量之间的一种变化,是研究离散数学的一种工具。它将原函数f(x) 映射到f(x+a)-f(x+b) 。差分运算,相应于微分运算,是微积分中重要的一个概念。总而言之,差分对应离散,微分对应连续。差分又分为前向差分、向后差分及中心差分三种。(上面概念蒟蒻都不懂/kk)一维差分一维差分中,差分就是将数列中的每一项分别与前一项数做差例如 1 2 3 4 5差分后 1 1 1 1 1 -5;就是这样的。那么一维差分有显而易见的性

2020-08-10 16:22:34 3707

原创 2020夏清北学堂提高组腾飞营听课随笔

8.1 上午讲了 差分 贪心带二分例题在 Luogu P2680 P1525 P1948 P1315 P3258//话说回来,讲P3258时我一直以为是P3528,3528又是个英文题面弄得懵逼了半天/笑哭。对于树上差分很模糊/可能是我没好好学一本通...

2020-08-01 20:47:45 334

空空如也

空空如也

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

TA关注的人

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