笔记2
weixin_45608039 多巴胺
可做动物,不做废物。
展开
-
省赛总结博客
这次省赛结束了,省赛中有一个最大的遗憾就是有些贪心,没有准确的定好目标,B题,M题,C题都想去弄,结果B题不是一个能出的题,想着碰运气,结果wa了两发,M题是一个能出的题,但是M题费了一些时间后,又去去弄C了,结果在C上又耗费了不少时间,还有一个是没有及时的看榜,D题容易,但是较晚才看到,而且M题没有去冷静的思考,注意力分散过大。比赛最关键的还是需要准确的定位题目,并且准确的把握是否应该提交,然后就是及时看榜,找通过率较高,通过较多的人数的题目优先,还有就是提升思维的强度,对一个题目应该能判断他的绕弯有多少原创 2021-05-10 16:51:24 · 197 阅读 · 0 评论 -
总结博客
涉及到数学的问题还是不行,有不少东西还没见过,导致一些中等的数学题目搞不定,有些学过的数学知识的中等题目也不是能快速的搞出来,有些涉及到数学的题目本身不是很难,大多都卡在了知识面窄,见识少上,有些题目就是这样,这类的题目见过,涉及到的数学知识知道会用,不用费太多的周折就能想明白,但要命的是不知道他,是空白。对于中等的较多类型的题目要多练习,涉及面要广量要多,针对某一个方面的很难的题可以用来锻炼,但不能把每一个方面的难题都作为目标,要重点抓住中等左右的题目,难题可以锻炼,但目标要少。能把中等左右的题的各种类型原创 2021-04-25 23:43:13 · 134 阅读 · 0 评论 -
近期比赛训练总结情况
经过近期的训练,最主要的问题就是我们之间的配合不好,在题目的取舍上做的不好,在检错上做的不好,缺乏经验,容易在一个问题上耽搁太久,又容易因为一些无脑问题消磨太多时间,有时在理解问题上有偏差,还有就是相互之间的交流少,想法沟通不太好,在一个是缺少比赛经验,在一台机器上调试的默契不够。 然后就是有时后容易操之过急,导致犯错,还有就是我的速度较慢,春雨速度较快,而治川不善于表达,善于独立思考。我需要提升速度,我们之间还要在题目取舍和顺序上多找经验,然后就是和治川多交流。...原创 2021-04-17 21:19:20 · 282 阅读 · 2 评论 -
HDU A simple stone game K倍动态规划减法游戏的一些理解。
两人取一堆n个石子 先手不能全部取完 之后每人取的个数不能超过另一个人上轮取的数*K,给n,K判断先手必胜并求第一步走法。先看k=2斐波拉契数列0 1 1 2 3 5 8 13,有关这个数列首先明确这几个事实1.任意一个整数可以写成斐波那契数列中的不相邻的项的和,2.任何一个整数n都可以写成两项斐波那契数的和3.f(i)=f(i−1)+f(i−2)f(i)=f(i-1)+f(i-2)f(i)=f(i−1)+f(i−2)f(i)=f(i−2)∗2+sf(i)=f(i-2)*2+sf(i)=f原创 2021-04-14 18:37:44 · 183 阅读 · 0 评论 -
小结
这周主要是把杜教筛的应用搞得比较熟了,还有一个令人欣喜的发现是母函数,有了母函数这个东西,就能把dp和数学密切的结合起来,结合程度要比以往的以容斥反演等为联系要直接的多。这样,我现有的知识体系就能得到更深的联系。遗憾的是这周做的题目少,做题的时间不多,相比于上几周的收获小,没怎么写题解博客。...原创 2021-03-21 23:28:39 · 76 阅读 · 0 评论 -
小结
把dp,数据结构 尝试着和数学挂钩还真不是很容易,dp搞起来虽然没有向以前理解起来那么难懂,但是是一个很大的阻力,需要做题复习慢慢回顾,还有就是数据结构了,不求多,把简单的线段树,树状数组,查分数组这三块和数学挂起来,再有一个是现在理论上比较熟悉的杜娇筛也与数学挂起来,这三个结合点是一个瓶颈,争取突破,把他们混着弄熟了,将是一个很大的提升。...原创 2021-03-14 23:05:11 · 67 阅读 · 0 评论 -
本周小结
搞了老长时间的莫比乌斯反演,终于感觉上差不多是那么回事儿了,一些题目能出了,继续多做题进行巩固,还有就是在学习卷积的求法,线性筛,容斥,二项式反演等内容时,很多内容都有着线性dp的思想,特别是卡特兰数以及与prufer序列相关的一些东西让我对线性dp有了更深的了解,因为他们往往都有递推式,可以利用dp,有关卷积的容斥求法和01背包,线性dp的正推与倒推的一些技巧相似,而且有关二项式反演的一些问题有时也会和dp相结合,容斥最为朴素的方法是枚举2n2^n2n项数,但是往往数据过大,一个优化的方向是把项与项整合到原创 2021-03-07 22:23:08 · 64 阅读 · 0 评论 -
卷积的求法与配线性筛
如果是已知F(x),求f(x)的话,(就是f(x)是被卷函数,F(x)是卷积)可以利用容斥的方法,也可以利用反演公式,利用反演公式一般起到两个作用,化简方便降低复杂度或者是配出积性函数来线性筛。直接容斥求的原理如下,复杂度为nlogn .但前提是F(x)已知且易求得。代码如下这里是正向推。for (int i=1;i<=MAX;++i) for (int j=i<<1;j<=MAX;j+=i) F[j]-=F[i];或者是利用反演,乘上一个莫比乌斯函数,这样就可原创 2021-02-24 23:05:41 · 99 阅读 · 0 评论 -
二项式反演中至少与恰好的转换的问题
有关二项式反演的东西中较难理解的是至少与恰好的转换,其余的一些东西都比较好说,先说一个结论,把至少问题转换为恰好来做并不是存在至少与恰好就行的,因为利用二项式反演把至少与恰好转换有时候并不一定是对的,但一般混有排列数的运算与容斥的结合的东西往往是可以二项式反演的,但是没有排列数的计算的东西二项式反演可能是不对的,含有排列数的计算的算式利用二项式反演一般是没问题的。然后举个例子,有m个人,至少要选出n个人,问方案数,那么,如果对此进行二项式反演的话,会发现不对,这些个算式只有组合数,没有排列数的计算。原创 2021-02-23 23:24:56 · 430 阅读 · 0 评论 -
洛谷p5495 p6810 (Dirichlet 前缀和与后缀和)
https://www.luogu.com.cn/problem/P5495https://www.luogu.com.cn/problem/P6810#include <bits/stdc++.h>#define int long long#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template <class cl>void read(cl &x){ x原创 2021-02-12 00:20:03 · 158 阅读 · 0 评论 -
线性筛
1.线性筛众所周知,线性筛可以筛素数,那么,一个数可以分解成素数的次方相乘的形式,而积性函数无非就是在原有的基础上把原来的素数次方给套上了一个f(),那么筛素数的时候做到了把素数次方相乘的所有情况搞了一遍,那么在原有的基础上套上一个f()也一样,这样就变成了积性函数的结果。对积性函数的考虑可以在原有的素数表上去添加,可以依据筛素数的表把积性函数所具有的一些个特殊情况给考虑完全。对于复杂的积性函数,就是先把下表整出来,再在这个表上套f(),考虑特殊情况,最后再对照着写代码。线性筛的优点再于只筛一次,找准原创 2021-02-04 01:06:04 · 175 阅读 · 0 评论 -
洛谷P4318 和 计蒜客 A1991 convex hull (模比乌斯与容斥原理)
这个东西如果数据量为1e6的话,那么可以直接线性筛把这个函数的表求出来,然后再两次前缀和,但是,数据量大的吓人,这样肯定是不行,直接硬来不行,考虑用数学简化。原创 2021-02-04 01:05:19 · 124 阅读 · 0 评论 -
小结
通过最近一段时间的学习,容斥原理,莫比乌斯函数,除法分块这三块的东西慢慢的变得清晰了,而且有关这些个知识点容斥原理是贯穿始终的东西,把它作为一个线索可以串联他们。终于进军杜教筛了,接触了一些有关杜教筛的东西。做了几场的cf,主要做了做一些c,d之类的题目,一个较好的兆头是一些个题目的一大部分工作可以完成了,距离最终的终点较近了。 以前不太喜欢写题解之类的东西,但最近觉得每弄懂一些知识点,每想到一些东西,每搞懂一道题目,都可以写上几篇博客,可以起到比较好的巩固效果。...原创 2021-02-04 00:15:08 · 74 阅读 · 0 评论 -
牛客练习赛76 F phi and phi 和 codeforces 1200 D. White Lines (差分数组)
这道题推算式好说,有意思的是一个差分处理比较巧妙。上面的东西写出来之后,按着他写代码就很容易了。cf 1200 D 二维差分(待写)原创 2021-02-02 21:57:16 · 113 阅读 · 0 评论 -
卡特兰数,prufer序列与树上计数。
卡特兰数的判别方式一般是这样,找到一个一分为2的点,找递推算式,或者是证明在某一点处之前,某种定义的量不少与另外一种定义的量。找递推算式与树上计数问题相关,和dp相关。把题目的描述改为更加接近数学语言的描述,会起到较好的效果。1.这个问题找到分割点后再找递推算式显然很难,那就想办法证明不少于某些量这样的关系。奇数项递增,偶数项递增,那么把1到n这样的递增的数依次放入时,放入奇数项的记为操作1,放入偶数项的记为操作0,要想满足奇数项小于偶数项,那么在前x次放数放入前x个位置中,如果在第k次操作之前,原创 2021-01-27 23:59:13 · 124 阅读 · 0 评论 -
总结
这几天做了做卡特兰数的题目和莫比乌斯的题目,感觉还行,但又遇到了新坑,有个题是和算概率结合的,但概率题从未接触过,莫比乌斯的题在推算式上的障碍小多了,觉得还行,但代码的模板和写法都是现找的,还写不好。卡特兰数的思考方式积累了一些,但还感觉上还不是很透彻,其切入点是去寻找一个把对象一分为二的点或者是证明在某个点之前某种操作小于等于另一种操作或者是找寻一种映射方式,映射到典型的卡特数的问题上。对于这个要进行细致的汇总,把各种各样的想问题的关键归结到一个几个点上。除此之外,大致翻了翻组合数学的书,哎,东西真多原创 2021-01-23 23:33:55 · 89 阅读 · 3 评论 -
容斥原理与欧拉函数与莫比乌斯函数,狄利克雷卷积与莫比乌斯变换,反演
莫比乌斯函数可以看成是一种被内化了的容斥原理,许多数论上的结论定理根据容斥原理和数学归纳法可以推导出来,但是有关容斥原理的表达式的构造往往并不容易,运气不好很难找到,而莫比乌斯函数则是巧妙的把容斥原理的构造过程和数学归纳过程用函数的形式在定义好了的代数系统的运算中内化了。狄利克雷卷积的定义就是这个代数系统的运算定义。并且含有单位元,逆元。...原创 2021-01-20 23:08:07 · 370 阅读 · 1 评论 -
这学期的训练总结
这学期的的训练感觉还算可以,总之找到了合适的方向,最初的时候看了两三个星期的状态压缩dp,主要是因为暑假的时候遇见了一道状态压缩的题目,觉得很有意思,然后就学了一段时间,积累了一些对他的感觉,但是对他的练习远远不够,也不熟练,只能说是有些路子和感觉,由于之前在网上搞了一本初等数论,看了一部分,感觉不错,在加上川哥在数据结构方面学的比较多,而我之前对数论多多少少看了一些知识,同时也比较喜欢,在加上没人弄数学,也就决定好好搞数论,数学这方面了,目前数论方面学的比较多,在暑假接触数论的时候,就有那么一个感觉,数论原创 2020-12-23 22:33:13 · 126 阅读 · 1 评论 -
本周总结 卡迈克尔数,缩系与剩余系的重排与构造
卡迈克尔数是指这样的合数,对每一个a =1…n, 都有a^n=a(mod n), 那么该数为卡迈克尔数,那么根据这个性质可以出这样的题目,给出n的值,问是这个n的值是否使得等式 a^n=a(modn)成立,那么很多人一定只会去检测n是否是素数,但是,n有可能是卡迈克尔数,这时就需要一个卡迈克尔数的判别方法,考奥赛特判别法,一个数n是卡迈克尔数的充分必要条件:n是奇数;n至少有三个不同的素因子;n无平方因子;对n的每一个素因子p都有p-1整除n-1;那么如果给出的数比较大,难以分解,这时原创 2020-12-21 00:55:41 · 1248 阅读 · 1 评论 -
本周总结 Miller_Rabin Pollard_Rho
这周主要对之前做过的一些题目和知识点回顾复习了一下,最大的感受是学的越多,忘得越快,学了新的,忘了旧的,但反正比第一次刚学的时候好多了, 复习的过程中一些代码还是不熟,知道咋回事,但写起来却费劲。 有关新的算法看了看Miller_Rabin和Pollard_Rho,觉得有这样几点注意的地方,第一点是快速乘最好写成return (a * b - (long long)((long double)a * b / mod) * mod + mod) % mod;这种形式,因为是对1e17,1e18级别的数的操原创 2020-12-07 00:18:31 · 114 阅读 · 0 评论 -
本周总结 哈希表+逆元存储原根的离散对数
如果要打表存储某个素数的原根的所有的相关的离散对数,而这个素数又比较大,那么可以通过哈希表和逆元结合来存储,g^z =g^km+r,g为原根,r=z%m; g^m * x =1%p; 那么如果y=g^z,yx=g^e,yx=g^(z-m) (g^m) x%p = ( g^e)%p; 由于(g^m) x=1%p;那么 z=m+e;那么根据这个性质,就可以建立这样一个哈希表,假设素数大小约为10000,那么,可以建一个100长度的哈希表,所挂链表的长度也为100,那么上面的m的值就原创 2020-11-30 02:10:19 · 230 阅读 · 0 评论 -
本周总结 原根与离散对数中的循环节 指数函数取模有关底数的循环节,有关求逆元的一个玄学问题
这题最主要的就是有关原根的一个循环节,由于原根的性质,fi(mod)是原根关于mod的阶,那么此时fi(mod)就是最小的循环节,又由于mod是素数,那么mod的缩系就是完全剩余系,那么就可以覆盖所有正整数,那么较小的只需要打表求出所有的有关原根的离散对数,而较大的如果使用map,则所占空间很大,那么就要用到哈希算法,哈希算法还不是很会用。但是在数论问题中,如果要对较大的数值的一些相关指数,缩系的一一对应的话,如果不是质数,可以离散化,如果是质数,也就只能是哈希表了。另外原根的这个循环节与中国剩余定.原创 2020-11-23 00:33:25 · 311 阅读 · 0 评论 -
本周总结 原根与离散对数的关系,扩展卢卡斯定理,组合数与容斥原理,一些玄学问题
原根与离散对数存在这样的关系这样,有了这样的关系后,在需要求大量的离散对数的问题中就可以先求出原根,然后由原根结合中国剩余定理派生出所要求的离散对数。对于一些需要求很多个离散对数,或者需要对多个离散对数进行一些操作的问题,也应该可以由原根来找的一些分割的标准。hdu 5377是有关原根与离散对数的很不错的题目,相关代码的一些细节还不是很清楚,回头再补一下。在学习扩展卢卡斯定理的过程中发现了一个很玄的事情,在用扩展欧几里得的时候,最好写成这种形式void exgcd(ll a,ll b ,ll &原创 2020-11-16 00:02:45 · 237 阅读 · 0 评论 -
本周总结 gcd与欧拉函数,容斥原理
gcd 与欧拉函数的结合存在一种划分的关系,具体如下,这样划分与划分之前的交集为空,有了这样的关系后,一些题目则可以既能结合容斥原理又能结合欧拉函数,既可以用容斥原理来解决也可以用欧拉函数来解决。如果加上一些条件,某些数被选,某些数不被选,选之后的贡献为某一个值的方法有几个,则就又能牵扯到组合数。在用容斥原理解题的过程中,往往要用到迭代法,在迭代的过程中最重要的是找清楚那一项应该被作为贡献加上,那一项应该被作为贡献减去,一般是和项数的奇偶性相关,如果在复杂一些,就是需要求出项数与加上减去之间的关系。这原创 2020-11-09 00:25:05 · 255 阅读 · 1 评论 -
本周的做题总结
首先写一下周六比赛的情况,那场比赛我们队一题都没出,我负责的a题, 那么记录一下a题的情况这种思路一开始我就忽略了a,b,c的大小对结果的限制,代码写到最后的时候才发现不对,这也怪我,哎思路二...原创 2020-11-02 00:58:28 · 179 阅读 · 0 评论 -
中国剩余定理 gcd的一个性质,阶原根的相关知识,以及小米比赛的总结
中国剩余定理有一些细节问题,扩展中国剩余定理的模板适用性最好,但是处理a,b不全为正数的情况会出错,使用的时候要把a,b化为整数,而且,对于一些取模取得较大的数,有可能会爆掉long long ,那么可以有一个很好的解决办法,就是用 他这个快速乘不仅速度快,而且不会爆掉long long 而且确保输出的数都是正数。inline ll fmul(ll a,ll b,ll p){ return (a*b-(ll)((long double)a*b/p)*p+p)%p;}另外普通的中国剩余定理原创 2020-10-25 23:56:16 · 344 阅读 · 2 评论 -
数论相关总结
这周主要学习了数论,数论最主要的不是记住模板,而是搞清楚他具体是什么,缩系,剩余系,剩余类,积性函数的转化关系,,积性函数的和等相关概念和证明都要多次推导才行,每个定理证明所用到的引理都很重要,有些推导技巧不会用的话,逆元是很难用进去的,如果对缩系的相关概念的关系理解不够,欧拉函数也很难去运用,有关个数的求解一定要向欧拉函数靠拢,而联系欧拉函数就要用到缩系,可以把逆元作为基础支点,乘上什么东西,来得到想要的形式 ,1很有用,乘什么是什么,还能结合欧拉定理,把一些数据的范围缩小。对于矩阵乘法,可以巧...原创 2020-10-18 23:53:29 · 361 阅读 · 2 评论 -
dp学习总结
这周主要学习了一下树形dp,单调队列优化dp,斜率dp, 树形dp有规律可循,第一步是发现数据之前的关系可以用树的关系来表示,并且建立的树一定是一颗整树,如果是零零散散的几棵树需要人为的去把他们链接起来,第二步从树的节点的最末端开始进行dp,从末端开始积累优势,逐渐向根部推进,在根部找到最优值,发现数据之间的关系可以用树维系,并链接成一颗整树这一步不容易,需要在思路上下功夫,还需要数学上的技巧,然后从末端积累优势的过程和线性dp的方式差不多,主要还是dp的基本功的问题,当然积累优势的过程也有可能和区间dp沾原创 2020-10-12 00:42:25 · 235 阅读 · 0 评论 -
本周总结博客
这周是我讲的课,一直在准备讲课的事情,由于计划讲状态压缩和数论,之前一直想把数论的知识点啥的从头到尾梳理一遍,一直没有去做,结果有了讲课这个事压着,看了好几天的数论,我居然把它做完了,哎,懒死算完,但是,在这种压力之下,我好像回到了五年之前的那个勤奋的状态里,居然有一天一整天没玩手机,看来我应该多给自己制造一些压力,之前从来没想过自己要去整理一些东西,好吧,那就给自己定一个目标,学习dp的过程中也同时学习数论,争取弄一个属于我们队友的模板出来,哎看了很长时间的状压,又看了一段时间的数论,dp相关的东西还没有原创 2020-10-04 23:15:13 · 187 阅读 · 0 评论 -
比赛总结博客
比赛比了一下午,没出几个题,有两个题看着会,实际上不会,还有道题找素数的,要用min25筛法,搞了半天,不会,读题慢,码代码也慢,感觉自己就是废了,看了一星期的状压,也没碰到状压的题,但是三个人的配合感觉还行,觉得有点感觉了,通过这次比赛,我感觉我写代码少,读题慢的弊病很大,以后一定要多码代码,多读题,少用翻译,今天有两个题是读题难,做起来容易的,一定要多读题,多写代码,还有一点就是数论的不少模板都忘了,现想又写不出来,今后一定要整理出常用模板来,有关素数筛法的问题要多看看,特别是一些高级的筛法。加油。原创 2020-09-20 21:38:41 · 147 阅读 · 0 评论 -
总结
之前题目不会的时候理解思路和代码很困难,但现在变得比较容易了,以前的时候算法学的不是很精细,做题,补题的时候更多的精力都放在思路上,很多时候题目的思路搞清楚后,代码也就是写过一遍,而且是一个代码要写好长时间的那种,然后就不在看它了,导致现在有些题目的思路的切入点和大致上应该怎么办和正确的思路接近,但是在具体化的时候就不行了,有些和数学表达算式相关的问题,知道表达算式大概应该长什么样子,但是却不知到如何把一些数据无缝的弄进去,现在一些题目的思路理解和题解代码理解不是什么太难的事,应该把一些较难一些的题目,代码原创 2020-08-16 21:20:25 · 117 阅读 · 0 评论 -
图论学习2 有关环的问题
图论中涉及到环的问题有很多,基础的有这样几种,判断环,判断正环,判断负环,求最小环,有向图和拓扑排序相结合的判断环的问题。除了基础的有关环的问题,然后就是和度的奇偶性,环的值与点的权值,贪心,判断策略,推导结论相关的一些问题。判断环https://blog.csdn.net/MrSiz/article/details/51290835https://blog.csdn.net/lj12358132134/article/details/80458349判断负环https://blog.csdn.原创 2020-08-08 22:39:25 · 293 阅读 · 0 评论 -
图论学习1
图论的题比较常见的操作就是在邻接表或者是邻接矩阵的基础上结合暴力搜索,dfs,bfs的一些写法,在高级一点就是在这些的基础上加上一些优化,比如优先队列,线段数,并查集,离散化之类的,更困难一些的就是搜索超时,要换成dp,或者是在dp的基础上再用一些数据结构来进行处理,图论有许许多多的算法,也有不少和数学结论相关的东西,比如说有向无环图的一些特殊性,最小生成树,和贪心结合,还有一些比较特殊的利用数学结论的判断,对环的判断,对负环回路的一些处理,图论的相关模板有很多,但是图论的基础还是搜索和邻接表和模拟的结合,原创 2020-08-06 22:05:35 · 159 阅读 · 0 评论 -
单调栈与单调队列
单调队列和dp或者是和一段连续的段的区间最值相关的问题结合使用。往往用于顺次扫描中随时随机需要区间最值的问题,或者是两个数之间的数的个数结合下标差,单调栈也是经常用在一些求间隔的数的个数或者是随时获得一段区间的最大最小值。两者的使用都对扫描的顺序有要求,如果是取随机的区间,则通常是线段树。单调队列对dp的使用经常要用到一种滑动的窗口操作,并且几乎所有的单调队列的使用都是一种滑动式的区间操作,需要查找某个值的时候往往要结合二分,而单调栈的用法显得更为巧妙,多变。有时线段树和单调栈可以结合使用。线段树维护单调原创 2020-08-05 00:20:38 · 83 阅读 · 0 评论 -
训练总结
训练了一个月,不是很用心,但也有些收获。觉得做题最重要的是一个心态问题,很多时候一天也就能搞懂两三道题,或者说是把一个算法学个大概,做题的时候不懂的时候很多,会的题很少,慢慢的接触了一些较难的题目,不是算法没见过就是没有思路,很多时候看题解刚开始也看不懂,然后到后来慢慢的能有一些思路。不少时候题目给出的数据不会整理,也有不少时候漏掉一些比较关键的条件,也有一些时候误解题目的意思,做题的时候总是太心急,不能冷静的思考问题,老想着怎么快速的把问题写出来,但是过一段时间之后,在从新把题目读一遍,有些问题的解决方法原创 2020-08-02 16:31:33 · 112 阅读 · 0 评论 -
线段树的懒操作与标记永久化
线段树的懒操作的中心思想是把一整段区间敲碎,用碎片化的几段组成一整段,而这碎片化的几段的sum值是直接被修改的。然后再在这些碎片化的段上打上标记,使得下次需要其他碎片组成新段的时候看看某些碎片是不是之前打上标记的碎片的一部分,若是的话则在这些新的碎片上加上所要加的值,然后去掉老碎片的标记。而永久标记化则是一种一劳永逸的做法,把一整段敲碎,把所有涉及到的碎片都打上标记,不去改变sum的值,然后再在查询的过程中若涉及到修改的碎片则加上标记值*(段的长度)。任何的的懒操作和标记永久化的写法都是对这个过程的模拟。懒原创 2020-07-30 18:33:01 · 1052 阅读 · 0 评论 -
树状数组求最值中存在的问题
使用线段数求区间最值得好处是速度不慢,而且数组不需要开二维,不需要开太多,与ST比起来更加实用,节省空间。万金油。看了很多的博客,但是void up(int x, int v){ while (x<= n) { b[x] = max(b[x], val); x += lowbit(x); }}这种方法用来维护是错误的,因为如果x位置上是区间最大值,然后再对x进行修改则会发生错误。比如y修改成y-1,y-1依然是区间最大值,但是上述修改则发生了错误。这个的复杂度logn,如果原创 2020-07-28 22:25:33 · 125 阅读 · 0 评论 -
对图,树状数组的复习
之前对图,树状数组一直不是很熟,今天又看了一下,一直感觉图,树状数组这样的东西可以套模板,但是,有时候图并不是对模板的键入和熟悉上,有的题不用图和树状数组也一样能做,但是,他们的组成结构可以为问题的解决提供思路,有一些贪心问题的贪心策略,直接去想可能不好想,如果尝试着结合图去想贪心思路,或者是动态规划问题,可能会有不错的效果。树状数组给人的感觉就是对数组的操纵能力更强了,并且,他的这种问题的处理方式应该不仅仅可以用在优化数组这一个方面上,一些问题的解决方案获取可以借用这样的分析思路,就像逆序的问题。除了逆序原创 2020-07-27 22:51:44 · 69 阅读 · 0 评论 -
codeforces 1238 总结
B这题要注意一点,对set的反向遍历需要从rebegin开始到rend结束,it++,哎,写反了,找了半天没找出来。如果使用 unique+数组 的形式,会更快。#include <iostream>#include<algorithm>#include<set>using namespace std;int a[100005];int main(){ int t; scanf("%d",&t); int n,r;原创 2020-07-20 23:49:18 · 113 阅读 · 0 评论 -
codeforces 补题总结3
codeforces 1260 E这道题,哎,写的是时候忘了一个重要的点,虽然说花钱的场数是一定的,但是,所选的贿赂的人也是有区间限制的,结果写的时候把这个忘了,反应了半天,没反应过来。错误代码:#include <iostream>#include<cstring>#include<string>#include<cstdio>#include<queue>#define ll long longusing namespace原创 2020-07-16 22:30:39 · 177 阅读 · 0 评论