![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OI
文章平均质量分 86
zhouyuheng2003
不要害怕落日的黑暗,因为明天的太阳还会照常升起
展开
-
[luogu4027] [NOI2007]货币兑换
前言回光返照题目相关link题解考虑从最后一天倒推可以计算出某一天的钱的得利率,A券价值(最终相当于多少钱),B券价值(同上)原创 2020-01-18 14:48:39 · 283 阅读 · 0 评论 -
[uoj24]缩紧优化
前言写写题题目相关link题目大意给你nnn个正整数aia_iaif(x)=∑i=1n(ai%x+ai/x)f(x)=\sum_{i=1}^{n}(a_i\%x+a_i/x)f(x)=i=1∑n(ai%x+ai/x)xxx为正整数,求最小的f(x)f(x)f(x)数据范围n≤106,ai≤106n\le10^6,a_i\le10^6n≤106,ai≤106题解开个桶...原创 2019-12-06 21:24:12 · 276 阅读 · 0 评论 -
CSP-2019总结
前言CSP(不是NOIP)在一周前结束了,对于这次CSP,感慨万分,也写下这篇总结意义这次CSP既是我第一次参加CSP也是最后一次能从CSP中获得实际效益(明年还有一次娱乐场),对于CSP一试就感受到题型的不同(侧重真正的OI了很多),不过还好一试考了90+,过考试还是没有问题的,然后二试于我而言如果发挥失误很大也就意味着与4年多来学的OI告别,所以在考试中还是挺小心的正文day1da...原创 2019-11-22 21:16:36 · 872 阅读 · 0 评论 -
[luogu2042] [NOI2005]维护数列
前言写写比较麻烦的这题题目相关题目大意写一个大数据结构数据范围20000题目链接题解首先要过模板题,比如会个非旋treap,写一下,通过[luogu3369][模板]普通平衡树...原创 2019-11-14 15:59:33 · 202 阅读 · 0 评论 -
[luogu3290][SCOI2016]围棋
前言一道dp题题目相关题目链接题目大意一个n∗mn*mn∗m的棋盘(0,1,2)并给出一个2∗c2*c2∗c的模板,求多少种棋盘包含模板qqq次询问答案模1e9+71e9+71e9+7数据范围n≤100,m≤12,c≤6,q≤5n\le 100,m\le12,c\le6,q\le5n≤100,m≤12,c≤6,q≤5题解首先我们发现包含模板的数量不好算,但是我们发现可以求出...原创 2019-11-04 20:08:48 · 202 阅读 · 0 评论 -
线性递推学习
前言模拟赛遇到的算法,值得学习正文鸽鸽原创 2019-10-24 14:20:36 · 178 阅读 · 0 评论 -
排序算法总结
前言初赛到了,理一下排序算法冒泡排序扫n遍,每一遍比较相邻大小复杂度O(n2)\mathcal O(n^2)O(n2)插入排序每次插入一个数到相应位置复杂度O(n2)\mathcal O(n^2)O(n2)选择排序每次选一个最小的加入复杂度O(n2)\mathcal O(n^2)O(n2)堆排序全放堆里,每次取出最小的复杂度O(nlogn)\mathcal O(nlogn...原创 2019-10-14 20:13:49 · 196 阅读 · 0 评论 -
2017/9/26Codeforces E题
2017/9/26Codeforces E题我终于打了一场cf了,可惜我太蒟蒻,6题才出了4题,反思一下,订正一下吧 E题面:http://codeforces.com/contest/864/problem/E E题大意: Polycarp家着火了,现在Polycarp要把一些东西救出来,每样东西都有三个值ti(救出来所花的时间),di(物品被烧毁的时间,只有物品在被烧毁前救出来才有价值),原创 2017-09-26 14:25:29 · 496 阅读 · 0 评论 -
部分OI常用数论符号集锦
部分数论符号集锦背景学OI,里面有一种叫做数论题的题目,简单的数论题还简单,可是越学就发现越烦了,什么欧拉函数、莫比乌斯反演、某某筛之类的,真的一点都看不懂 那么,怎么办呢,想要学数论先要会其相关符号吧,今天本蒟蒻整理出了部分常见OI用到的数论符号 (注:本蒟蒻是C++选手,采用传统C++代码)正文1.常见符号+、-、×(C++中作*)、÷(C++中作/)、√、±、|a|(绝对值) 、^(指数符原创 2017-09-25 16:24:15 · 9514 阅读 · 0 评论 -
最长上升子序列(LIS)的求法
最长上升子序列(LIS) 给定一个长度为N的序列A 满足: 1. 1<=x1< x2< x3<…xk<=N 2. A[x1] < A[x2] < A[x3] < … < A[xk] 即寻找一个最长子序列,满足该子序列中每个元素严格递增(其实不严格递增也可以做) 做最长上升子序列有两种方法:1.动态规划(O(n2))dp[i]表示取到第i个数的最长上升子序列 若有j满足a[j] < a[原创 2017-10-31 20:59:18 · 296 阅读 · 0 评论 -
整数判重、大整数Hash
大整数Hash总是听高届的大佬说,一个字符串Hash,能搞出大部分的字符串题,Hash真的有那么神吗? 答:是的 近来,参加很多NOIP模拟赛,其中一场设计判断大整数是否存在偷懒了一下,开了一个map原本能A的题T掉了三个点,OJ上评测T3个点还跑了1480ms,忍痛改Hash后发现A了只跑了356ms 对于整数的判重、Hash事实上有很多方法,具体应用要看数据范围和题目要求 看大整数HAS原创 2017-09-30 20:26:57 · 970 阅读 · 0 评论 -
NOIP2017提高组比赛总结
NOIP2017提高组比赛总结前言转眼间,NOIP2017(经常叫他NOIP,其实全称是全国青少年信息学奥林匹克联赛)就这么过去了。回望这2个月,既有参加NOIP的激动,也有赛场上一些失利的遗憾。想一想,我应该给自己总结一下吧,希望其他人能从中获益,也让我明年再战的时候能有所借鉴。正文NOIP2017初赛今年的初赛,由于是到了提高组,选择题有5题改成了不定项选择题,就是一题可能会有多个答案的,这就比原创 2017-11-13 08:58:12 · 2027 阅读 · 0 评论 -
C++输入、输出优化模板整理
前言对于在信息学竞赛中逐渐深入学习的C++选手们,会发现有些题目的输入输出量特别大,有时可能一道题读入完你就TLE了。那么怎么办呢?少用cin或者cout,因为如果你对cin或者cout没有进行一些优化的话,它会跑的很慢,所以你如果不会输入输出优化的话,那就乖乖用scanf吧,这样会相对快一点。 但是呢,scanf速度还是不够快,那怎么办呢?那就用输入输出优化吧!前置知识 getchar是读入原创 2017-11-16 13:14:59 · 1680 阅读 · 2 评论 -
mannachar(马拉车)求最长回文子串
mannachar(马拉车)究竟是什么东西呢? 很简单,就是能让你在O(n)的复杂度内求出一个串的最长回文子串。传统的算法复杂度是O(n^2),呐,为什么mannachar能变快呢?因为mannachar用到了算过的东西来进行优化。脑补一下,当你发现了一个回文串,那么是不是左右就对称了呢?然后左边的最长回文子串是已经求过了,所以右边对应的点的最长回文子串至少也有那么多。 先贴一波代码#inclu原创 2017-11-22 19:20:08 · 297 阅读 · 0 评论 -
点分治
前言近来,去查漏补缺了一些知识,发现自己好像在暑假时候略微接触的点分治好像我还没好好的学过(当时教练说先学那些提高组要用到的东西)。所以呢,我就去网上找了几份讲义,整合了一下,那就在这篇博客里谈一谈我是怎么学习点分治的吧。开始其实呢,我学点分治一开始看了几份讲义,就以为自己懂了,然后呢,我做的第一道例题是“聪聪可可”。 聪聪可可题意: 给你一棵树,边带权,让你求树上点...原创 2017-12-04 19:22:57 · 1675 阅读 · 0 评论 -
动态开点线段树(多棵线段树)的内存分配与回收
前言线段树,是一个很好用的能支持O(logn)区间操作的数据结构,随着做一些稍微烦一点的题,有时候会发现有些情况要开一个数组的线段树,更有甚者要树套树,而在很多情况下线段树就不能把所有点都开满了(否则会MLE内存超限),于是就出现了线段树的动态开点写法基本思想与普通的线段树相同,动态开点线段树只是一开始每一个节点都没有,insert的时候,如果遇到节点是空的,那么就声明这个点,询问的时候只访问询问的原创 2017-12-22 11:33:50 · 2107 阅读 · 2 评论 -
最小树形图
简介 最小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T,并且T中所有边的总权值最小。 摘自 百度百科·最小树形图典例洛谷P2792 小店购物https://www.luogu.org/problemnew/show/P2792 题意简介:给你n个物品,每个物品都有其单价和你要购买的数量(不能多买),现在有优惠条件(A,B,f)表示若你已经买过A原创 2017-12-07 11:49:02 · 354 阅读 · 0 评论 -
不平等博弈问题学习记录(一)(超实数篇)
听到博弈问题,第一个想到的想必是用SG函数做的博弈题,就比如Nim游戏 Nim游戏:有N堆石子,每次选一堆石子,拿走若干石子(不能不取),先不能取的人输定义个SG函数 对于SG函数,大致就记录两个东西吧 定义SG函数g(x)=mex{ g(y) | y是x的后继 } 游戏的和的SG函数值是它的所有子游戏的SG函数值的异或SG函数能解决很多问题,但是它并不是万能的(我今天才知道,逃原创 2017-12-30 20:32:35 · 1540 阅读 · 1 评论 -
不平等博弈问题学习记录(二)(对于超实数在博弈下左右相等的扩充)
在上一篇文章中,定义了{l|r}这个运算 但是,还有很多的特殊情况没有考虑过,就比如说,在{L|R}的运算中,L或R为空集怎么办,那么这个这个空集就可以用Φ\Phi表示,不过一般可以用不写任何东西来表示,比如说|=0{|}=0,可以当做无穷(如果是左边是空集,那么可以视为是无穷小,如果右边是空集,那么可以视为是无穷大) 另外,当l=r=0的时候呢,两个子状态都是先手必败态,那么答案是什么呢,那很原创 2018-01-01 21:07:29 · 334 阅读 · 0 评论 -
不平等博弈问题学习记录(三)(对于超实数在博弈下左大右小以及多堆情况的扩充)
今天写的这一篇文章离写第一篇文章的时间可能有几天了,并且在这段时间里也有人向我提出了我错误的地方,现已作更改。 今天,我们又做到了一道题目,也是不平等博弈的,听了讲题,我对不平等博弈有了更深的理解。 首先,不平等博弈,或者说是一个游戏,一直以来我觉得都可以用超实数来做,但今天我发现,其实超实数其实是一种数,这种游戏的状态不等价于超实数,就比如*符号,这个就不是超实数,所以这些东西都是超实数的扩充原创 2018-01-04 21:07:42 · 657 阅读 · 0 评论 -
最小费用最大流-SPFA
在学最小费用最大流之前,首先要先了解网络流的基本知识 好,如果你已经会做最大流并且想学一学怎么计算最小费用最大流那就看完这篇文章吧 最小费用最大流,即一幅图,除了网络流的基本信息外,每条边还会有每流过1流量消耗的费用的信息,要你求的是保证最大流的前提下的最小的费用 对于这样的问题呢,有很多做法,这里我就介绍一个较为经典的spfa算法吧 首先,在做最小费用最大流之前,先考虑最大流问题的做法,原创 2017-12-05 18:28:58 · 731 阅读 · 0 评论 -
最小费用最大流-SPFA-多路增广
背景在最近的模拟赛当中,我碰到了一题二分图最大权匹配的题,建图比较简单,因为是IOI赛制,所以可以爆OJ,然后呢,打了一发普通的spfa费用流,跑的很慢诶,只拿了70分,都有人AC了呢。那天的讲题,好像说写KM(二分图最大权完美匹配的一种算法)就能过,但是呢,新的东西学还是需要一段时间的,但要订正的话,emm,还是学一学优化的spfa费用流吧,即多路增广一下,事实证明这是能过的。算法介原创 2018-01-23 17:33:46 · 2656 阅读 · 1 评论 -
第一类斯特林数学习记录
最近做题有时会碰到斯特林数(Stirling数),就觉得好好的学习一番,于是呢,写下这篇博客,来记录一些知识简单介绍 第一类斯特林数表示表示将 n 个不同元素构成m个圆排列的数目。——百度百科第一类斯特林数,可以表示为s(n,m)s(n,m),注意这里是小写 ,要与大写的第二类斯特林数区分开来,定义上面也讲到了,但是呢,其实那句话最好改成第一类斯特林数的绝对值,因为第一类斯原创 2018-01-10 18:28:19 · 942 阅读 · 0 评论 -
虚树总结
学习之前的例题在学虚树之前,先来看一道题: 洛谷P2495 [SDOI2011]消耗战https://www.luogu.org/problemnew/show/P2495 大致题意是这样的,现在有n个点,n-1条带权边的树,有m个询问,每个询问,给出k个点,(其中不包含1号节点),要删除一些边使得1号点与给出的点不连通,求删除边和的最小值。乍一看,是不是觉得显然是树形dp呢,而且树形...原创 2018-01-19 20:06:10 · 5661 阅读 · 4 评论 -
北京大学冬令营(PKUWC2018)总结
前言就在上个星期,我参加了北京大学在湖南长沙长郡中学举办的冬令营,然而不幸的滚粗了,在此留下姗姗来迟的总结。日程day -infNOIP结束,刚回去上课不久就要继续停课,准备wc,这段时间呢,很多人都开始进行每天的考试了,那些日子,每天考试、听讲题,晚上自己学习、复习算法,就这样,若干星期过去了。day -2这天我们考了最后一场模拟赛,感觉发挥一般,希望自己真正原创 2018-02-05 13:39:19 · 4605 阅读 · 4 评论 -
kmp字符串匹配
给出一个子串和一个母串,求子串是否在母串内出现,若有求所有开始的位置这是一个典型的字符串匹配问题,这有很多种做法,其中之一是kmp算法(当然也可以用字符串Hash来做,但是kmp的学习有助于ac自动机的理解)。 kmp的精髓在于一个nxt数组,nxt[i]表示子串的前i位的最长后缀长度j使得这个长度为j的后缀和子串的前j位匹配(即完全相同。而在字符串匹配中两个指针i,j分别代表母串前...原创 2018-02-21 19:53:24 · 197 阅读 · 0 评论 -
省选考试防爆0注意事项(PART1考试习惯)
前言一转眼,就到了2018的上半年,省选就在眼前。这又是一些正式考试,也又需要整理一番前段时间在信奥学习方面除算法的那些东西了。 对于应试技巧,是非常重要的,之前的比赛中,总是会出现“我X题一个地方打挂了,少了···分”之类的赛后感言,然而考试考完才幡然醒悟是毫无用处的,还是需要考试时的专注。省选的题一般会比较难,以我现在的实力能拿到一点暴力分就算差不多了,倘若有失误那就成爆0选手了。所以,...原创 2018-03-21 20:05:07 · 348 阅读 · 0 评论 -
线性基
前言线性基,通常用来解决这样一类问题,给你若干个数,让你从这些数的子集的异或和最值或者其它位运算相关操作 这种问题方面,线性基的性能显得非常优越,空间复杂度一般都是O(log值域)O(log值域)O(log值域)的,然后各种常见操作的复杂度在O(log值域)O(log值域)O(log值域)到O(log2值域)O(log2值域)O(log^2值域)之间 最重要的是,线性基很好理解、很好写!...原创 2018-04-02 20:34:20 · 263 阅读 · 1 评论 -
九省联考2018总结
前言我作为一名ZJOI2018day1凉凉选手,为获得更多的省选体验,去上海参加了九省联考2018,当然,是属于外省选手参加的(所以实际并测的时候出现了一些问题也得不到解决),做完两天的题,深有感触,在此写一篇博客进行总结(姗姗来迟~) (另:为啥ZJOI不写博客呢,因为day2还没考,逃~)day0从杭州出发,乘坐高铁来到上海,高铁的速度还挺快,实际上就花了一个小时就到了上海虹...原创 2018-04-15 20:17:55 · 1639 阅读 · 0 评论 -
手写vector
前言近来做到一些题目,对于暴力有些卡空间,对于几个能拿分的subtask没个刚好都能过去,但是开的数组不一样,都开就MLE了,我就尝试着开同一个数组,卡的太紧,最后很多数据都MLE没分了,一气之下觉定学习动态开内存(顺便学习一下手写vector)vector简介vector?著名STL之一,又称动态数组,简直就是一个数组,有点像个栈 支持压入,弹出(push_back,pop_b...原创 2018-04-16 19:50:44 · 2725 阅读 · 7 评论 -
原根
1.定义 原根,是一个数学符号。设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。 ——百度阶的定义: 若gcd(a,p)=1,则最小的正整数n使得an≡1(mod&amp;nbsp;p)an≡1(mod&amp;nbsp;p)a^n≡1(mod\ p) 为a模p的阶(而且一定存在这样一个阶) 性质: 设gcd(a,p)=1 ,a模p的阶为n. 若正整数N使得...原创 2018-05-02 10:27:13 · 8028 阅读 · 7 评论 -
Prufer序列相关
最近做到一些题,用到了Prufer序列,挺有用的,在这里学习一下。描述Prufer数列是无根树的一种数列,通过一个Prufer序列可以唯一表示一棵顶点带标号的无根树,点数为n的树转化来的Prufer数列长度为n-2,它有很多的性质求法一种生成Prufer序列的方法是迭代删点,直到原图仅剩两个点。对于一棵顶点已经经过编号的树T,顶点的编号为{1,2,…,n},在第i步时,移去所有...原创 2018-06-24 10:13:24 · 1414 阅读 · 1 评论 -
bitset用法
前言一个bool耗内存多少,1BIT(位)? 根据其定义是这样的,可是在c++中,一个变量至少占1Bytes(字节),所以只用到1BIT的bool成功变成了1Bytes,要知道1Bytes=8BIT,那岂不是很浪费? 一般情况下,我们都使用整型变量压位的方式,但是当需要位数比较多的时候就会相对比较麻烦,那么怎么办呢,有个STL叫bitset,用它就能比较方便的进行压位。介绍头文...原创 2018-08-21 20:20:50 · 566 阅读 · 0 评论 -
[Snoi2017]炸弹
题目相关题面:BZOJ的题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=5017LOJ的数据下载链接:https://loj.ac/problem/2255/testdata一句话题意?题面那么短,自己看吧解法首先看到题目,容易发现一个性质,一个炸弹能炸到的范围是一个区间,这个性质看起来很简单,但是事实上非常有用,方便解题...原创 2018-10-25 21:21:30 · 1199 阅读 · 0 评论 -
NOIP2018提高组比赛总结
NOIP2018提高组比赛总结前言新赛季,依旧有很多失误。在些许的遗憾和无奈中,NOIP2018,撒花结束纵观今年的整一场NOIP,有许多值得总结的地方正文NOIP2018初赛第二次参加提高组的初赛,由于去年已经学过一遍知识点了,所以没有花很多时间,甚至没有完整的做完一套初赛模拟卷,选择题我做了一道题,“目前获得图灵奖的华人学者只有姚期智教授一人”这个知识点的缺失使我挂了一道多选题,...原创 2018-11-12 19:57:04 · 1511 阅读 · 0 评论 -
多项式乘法(FFT)
多项式乘法(FFT)前言作为一名OI选手,至今未写过fft相关的博客,真是一大遗憾,这也导致我并没有真正推过fft的所有式子这一篇fft的博客我将详细介绍多项式乘法,易于理解,当然,一些公式会有些枯燥,如果是初学者请耐心看完哦介绍多项式乘法,顾名思义,首先是讲到多项式,那么什么是多项式呢?多项式首先是多项式的定义,想必大家都知道(你上过初中吧),而在这里,我们所说的多项式都是单个未知...原创 2018-11-21 19:10:04 · 20793 阅读 · 3 评论 -
OI相关Tip
作为一名OIer,自然在平时会遇到各种问题这一篇小博客展示部分常用Tip,随时更新,仅供参考1.显示所有警告编译命令里面加入-Wall2.开栈Windows下编译命令里面加入-Wl,-stack=998244353Linux下命令行查看当前栈空间ulimit -s命令行更改当前栈空间ulimit -s 102400(示例:开100M栈,显示默认单位为K)...原创 2018-11-22 20:51:46 · 156 阅读 · 2 评论 -
线段树合并复杂度证明
前言近期对线段树合并有了更深的了解,所以在这里写一下一些自己的想法适用问题线段树合并有一类经典的模板,现在对于一棵有n个叶子节点的树(Tip:对于一棵N个节点的树,其叶子节点数量小于等于⌈N2⌉\lceil \frac N2 \rceil⌈2N⌉),每个叶子节点上都有一个值域为m的值在线段树中,一个非叶子节点节点的线段树由所有子节点的线段树合并而成,求相关的信息代码inline nod...原创 2018-11-26 09:10:41 · 3122 阅读 · 0 评论 -
Little Pony and Elements of Harmony(CF 453 D)
1 题目相关1.1传送门传送门1.2 题目大意给你一个mmm,现在有一个数组fff,已知这2m2^m2m个数在000时刻的值f[0][i](i∈[0,2m))f[0][i](i\in[0,2^m))f[0][i](i∈[0,2m)),已知另一个数组b[i](i∈[0,m])b[i](i\in[0,m])b[i](i∈[0,m])记cnt(x)cnt(x)cnt(x)为xxx在二进制下1的...原创 2018-12-04 17:11:25 · 536 阅读 · 0 评论 -
朴素多项式乘法考题
前言这一篇博客是在之前学习FFT的博客之后的,所以,如果你还不会FFT,请先看多项式乘法(FFT),在这篇博客里我有良心的详细讲解正文题型一:模板题&amp;amp;类模板题模板系列可以供你检测你写的FFT是否正确,在很多OJ上都有高精度系列,正式赛场上这样的毒瘤题不是很多,现在的考题一般都会给一个模数让你求,但是对于一些特殊的题可能还是会用到,所以可以练一练手(FFT可以优化高精度乘法,高精...原创 2018-11-30 11:38:42 · 327 阅读 · 0 评论