自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 【十一联考 1】T2 树链剖分

算法思路就不说了,其实比较简单这里讲一下坑点:1.虽然我们可以将边权压到点上,但是当根不同时,差分数组显然不同。所以我们不能真的将边权看做点权,换根时还是要将其当做边权来考虑。1.更新时,我们设dp[u]表示u节点为根时的最大价值,由于经过点u后,点v的儿子将变成点u,所以此时我们要更新点v的儿子中的最大值以及次大值。注意!不止要更新最大值,次大值也要正确维护我的代码没有加优化,...

2019-10-01 21:24:00 117

转载 Comet OJ 【noip模拟Day2】T2

一道类似康拓展开的数学题,结合了字符串的考点这是题解的下载链接click here难点在于如何判断字符串是由哪些单词组成的,正解是字典树,也可以hash,用map能拿90分,手写hash表可以AC这里给出map代码和手写hash代码STL map#include<bits/stdc++.h>using namespace std;#define go(i,a,...

2019-09-29 11:36:00 123

转载 【模板】树形DP求直径和负直径

注意,若负直径指广义的直径——可以缩成一个点,树形DP无法正确求出,需要将初值设为0(若大于0则不更新)void dfs(int u,int fa,ll &d1,ll &d2){ f[u]=f2[u]=0; for(int i=head[u];i+1;i=e[i].nxt){ if(cut[i]) continue; in...

2019-09-28 16:08:00 162

转载 【模板】求以每个点出发的最长路径和最短路径

void dfs(int u,int fa){ f[u]=f2[u]=g[u]=g2[u]=0; for(int i=head[u];i+1;i=e[i].nxt){ int v=e[i].v,w=e[i].w; if(v==fa) continue; dfs(v,u); if(f[v]+w>=f[u]...

2019-09-28 15:36:00 384

转载 【模板】吉司机线段树(势能线段树)

吉司机最经典的应用,区间最值更新HDU 5306其中对最大值和次大值及其个数的维护方式值得学习#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define com(i,a,b) for(int i=a;i>=b;--i)#defin...

2019-09-27 17:21:00 1266

转载 高手训练 线段树T3 P1753:区间连通性

线段树/标记永久化复杂度 \(O(nlogn)\)题解有误,并非所有与线段树节点[l,r]相交的所有区间[s.t]都要存入vector插入区间[s,t]时,我们覆盖了一段完整的区间,如图实质上是覆盖了表面的一层,即标记不下传故我们merge时要考虑每一层的vector插入时,如果两个区间恰好相接,也视作互相到达,所以合并时用(s,t)合并,插入时用[s+1,t-1]插入由...

2019-09-25 12:03:00 207

转载 洛谷P1034 【矩形覆盖】

Dfs+剪枝 保证正确性复杂度:\(O(玄学)\)此题标签是计算几何,可以极角排序然后DP,然而我因为想练搜索写了这份代码对于每一个点,我们枚举它在哪一个矩形中。即对于每一个点,可以创建一个新矩阵储存它,也可以用旧的矩阵储存它。我们可以用vector来储存每个矩形中的点,当矩形中的点确定,矩形的大小和位置就是唯一确定的。当n个点被放入k个矩形中时,我们计算出矩形的面积总和并更新答...

2019-09-24 17:18:00 162

转载 线性求逆元【转】

click here注意必须从2开始递推,好像1不满足这个性质inv[0]=inv[1]=1; go(i,2,n){ inv[i]=(P-P/i)*inv[P%i]%P; }转载于:https://www.cnblogs.com/White-star/p/11568030.html...

2019-09-22 16:42:00 79

转载 洛谷 P2050 [NOI2012]美食节

费用流好题推荐这篇博客click here注意此题如果不用动态开点的话10000的数组是不够的的,会RE因此网络流推荐动态开点更方便(原来都是手算的)#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define com(i,a,b) f...

2019-09-18 21:00:00 116

转载 洛谷 P3203 [HNOI2010]弹飞绵羊

分块\(O(n\sqrt{n})\)也可以LCT,不过此题分块是很精妙的,值得学习如果直接维护从i出发跳出去需要多少步,修改x时就需要修改x之前的所有点但如果维护从i出发跳出块需要多少步,则块外的不会跳到x上,不受影响,只用修改块内的点,单次修改复杂度降至\(\sqrt{n}\)询问时只用跳块,故也是\(\sqrt{n}\)的#include<bits/stdc++.h...

2019-09-17 20:20:00 95

转载 关于自定义比较运算符

struct cmpa{ bool operator ()(const int &i,const int &j){ return a[i]<a[j]; }};用priority_queue<int,vector < int > ,cmpa>q的方式定义比较函数时,比较方式要相反也就是说如果希望从大到小排序...

2019-09-16 20:46:00 124

转载 关于强制类型转换的优先级问题

(type)的优先级为第二梯度,仅次于(),[ ]等结合律为从右向左另外 (ll)ab == a(ll)b而且(ll)(a-c)b == (a-c)(ll)b而type( )有限级为第一梯度,有时候用起来是很方便的aXb运算时只需其中一个变量类型正确即可,不过需要注意顺序和优先级,1llab可以,但ab1ll不可以转载于:https://www.cnblogs.com/W...

2019-09-16 12:05:00 1587

转载 AcWing374 导弹防御塔

二分图此题看书的时候觉得特别难,实际的代码却非常简单现在分析是什么让代码如此简单的:首先预处理出第i个防御塔发射第j个导弹的时间(计算发射时间,不计冷却时间)二分答案,判断时间mid内能否解决问题利用vector建边,不用管标号的冲突,在二分图中十分方便(一般网络流可能就没办法了)时间复杂度:\(O(n^4*log(T))\) 实际更快#include<bits/...

2019-09-16 11:14:00 198

转载 【转】线性筛约数个数和、约数和

click here当然如果复杂度允许的话还是用埃氏筛吧下面给个模板:约数个数和\(O(nlogn)\)go(i,1,n) for(int j=i;j<=n;j+=i) ++d[j];约数和\(O(nlogn)\)go(i,1,n) for(int j=i;j<=n;j+=i) sd[j]+=i;\(O(n)\...

2019-09-14 09:50:00 115

转载 P3084 [USACO13OPEN]照片Photo

单调队列DP/差分约束差分约束会TLE讲解在这里#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define com(i,a,b) for(int i=a;i>=b;--i)#define mem(a,b) memset(a,b,s...

2019-09-13 17:35:00 179

转载 【模板】吉司机线段树 HDU 5306 Gorgeous Sequence

也叫小清新线段树,用于解决区间最值修改问题具体可以参考jiry_2神犇的集训队论文和WC2016上的PPT此题就作为模板好了,模板的话写法是比较精妙的#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define com(i,a,b) fo...

2019-09-11 19:20:00 965

转载 【转】雅礼集训 2017 Day1 洗衣服的正确理解

原文转载于:https://www.cnblogs.com/White-star/p/11507095.html

2019-09-11 16:37:00 144

转载 洛谷P1026 统计单词个数

一道神仙语文题(其实是出题人语文没学好)这道题最坑的地方在于对题意的理解,“当选用一个单词之后,其第一个字母不能再用 ”,指的是单词不能共用开头,而不是在整个段中以该字母开头的单词都不能再用给两份代码,一个用到了STLstring的一些函数,一个是朴素模拟朴素模拟#include<bits/stdc++.h>using namespace std;#define...

2019-09-10 10:04:00 89

转载 P1025 数的划分

此题我是做过的,挑战上的一道题刚开始想:不就是隔板法吗?但是此题不同顺序算同一种方案,隔板法显然无法解决此类问题,只能用计数类DP但是由于数据水,暴搜也可以过我们根据是否包含1划分 ,f[i][j]=f[i-1][j-1]+f[i-j][j];这体现了“围绕一个基准点把一个大问题划分为两个没有交集的部分”的思想#include<bits/stdc++.h>usin...

2019-09-09 21:13:00 104

转载 洛谷P1024 一元三次方程求解

不知为何没做出来此题,明明是道水题.....说好看清数据范围才开始做呢......可能是今天状态不好此题可以暴力枚举长为1的区间,甚至可以暴力枚举x,逼近100*200才20000,随便过需要注意的是在此类题目中我们常用eps=1e-8表示“0”#include<iostream>#include<cstdio>#include<cstring&...

2019-09-09 20:44:00 139

转载 洛谷P1021 邮票面值设计

DP+DFS复杂度 O(玄学)一道奇怪的题目,考场不一定能想得出来首先证明1的必要性,显然,没有1无法表示出1,因此1是必要的有了1之后,就有了一个枚举范围,对于一种邮票,它的面值要比前一个大。设前i-1种邮票能表示出来的最大范围为up,那么一定不能表示出up+1,所以第i种邮票的最大面值为up+1复杂度未知,不过这种小数据的题只要想出解法通常就能过了代码:#includ...

2019-09-09 20:06:00 127

转载 关于各种运算的优先级问题

关于各种运算的优先级问题优先级从高到低排序如下:加减移位比较大小位与异或位或+,--<<,>>>,<,==,!=&^|今天考试时就遇到这样一个问题,mzoj:bit,如果不是开了Wall可能下辈子都不会发现这里有问题因为移位运算优先级大于&,|,^运算,故k>>b&1...

2019-09-06 16:29:00 364

转载 ACWING 月之数/洛谷 同类分布

思路通常而言数位DP都可以用记搜做,此题我们也考虑记搜首先求出数字的和,去判断各位数字之和能否整除他的想法是错误的,因为每个数字都要判断一次,记搜变成暴搜。转换思路,能够整除就是模数为0,所以可以考虑把每步的模数给算出来,算到最后一位判断模数是否为0即可但是我们不知道各位数字之和是多少呀?没关系,不知道的枚举就好了。各位数字之和很小,可以直接暴力枚举,搜到最后一位时判断和是否为枚...

2019-09-05 20:52:00 151

转载 洛谷/Acwing 电视网络 Cable TV Network

Acwing因为位置原因无法AC,洛谷上10ms就跑过了,ACwing说我超时,可能是玄学另外,我们令S和T不联通,就要不允许删除S和T(拆点时边权为inf),而不能直接以s'为起点,t为终点,我无法证明这样做是正确的,也无法证明这样做是错的,而事实上他就是错的教训是不要使用为证明的算法,而是采用已证明的,显然的算法#include<queue>#include&lt...

2019-09-03 21:37:00 305

转载 (Great!)poj3469 Dual Core CPU

最小割复杂度:dinic,能跑1e4到1e5的网络,理论复杂度\((n^2m)\)求将对象划分为两个集合的最小费用常用最小割,但此题难点在于建图因为每个模块要么在A,要么在B,故向S,T连边,对每个点必须割掉一条边,不多不少,正符合最小割的条件——整张图都不联通,且不割多余的边又因为若A,B属于两个集合且A,B有边,需要割掉A,B间的边,才能保证S和T不联通,这也正是题目所要求...

2019-09-03 17:18:00 94

转载 P3807 【模板】卢卡斯定理

#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define int long longtypedef long long ll;const int N=1e5+10;#define getchar() (p1==p2&&amp...

2019-09-02 11:22:00 66

转载 P3740 [HAOI2014]贴海报

线段树\(O(nlogn)\)本来是做过这道题的,原题是POJ2528 Mayor's posters但是POJ上的数据有问题,导致我以为自己AC了。像这种区间的题尤其要注意离散化时要离散化左右边界举个洛谷上的例子当出现这种情况[5,7],[1,5],[7,8]按顺序覆盖的话,就会出问题:离散化为区间[2,3],[1,2],[3,4]那么按这样覆盖就会把第一张海报覆盖掉,但...

2019-09-01 19:57:00 110

转载 题解 poj3057 Evacuation

算法:匈牙利算法复杂度:不好算,懒得算这道题我调了两个半小时,代码长,细节多,现总结一下栽过的坑此题数组传参的方式很好,能够降低代码难度,值得学习如何使人和时间、门的二元组互不冲突很重要如果点无冲突用链表,否则用vector点是从0开始建的,初始化match数组不能用0,我虽然注意到了这一点却没调出来丑陋的代码#include<iostream>#inc...

2019-09-01 17:40:00 102

转载 匈牙利算法模板(洛谷3386)

#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define com(i,a,b) for(int i=a;i>=b;--i)#define mem(a,b) memset(a,b,sizeof(a))const int inf=0x...

2019-08-30 20:45:00 132

转载 CDQ分治模板 洛谷3810

RT复杂度 \(O(nlog^2n)\)cdq一个nlog,树状数组一个log,排序的话此题用归并排序会更方便,因为<=的也计入答案嘛注意还要预先处理一下三种维度都相等的情况,细节比较多代码就长这样,不长#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i&l...

2019-08-30 15:41:00 108

转载 [转载]挑战程序设计竞赛 划分数

自己理解不了,而且书上的内容似乎讲的不太清楚?是我太菜了。看了两篇博客,都写的非常好。贴个链接转载于:https://www.cnblogs.com/White-star/p/11418648.html...

2019-08-27 15:33:00 114

转载 题解 P1099 【树网的核】

提供四种复杂度的做法,希望能帮到大家\(O\)(\(n^3\)):#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)#define com(i,a,b) for(int i=a;i>=b;--i)#define mem(a,b) mems...

2019-08-27 09:33:00 129

转载 P2522 [HAOI2011]Problem b 题解

莫比乌斯反演ACWing215的升级版直接计算啊a<=i<=b,c<=j<=d的gcd(x,y)==k的个数不太好计算,因为我们很多时候都是从一开始枚举,而不是从一个大于1的数开始枚举,[x,y]范围内d的倍数也无法直接计算仔细一看这就是一个二维偏序,二维前缀和即可#include<bits/stdc++.h>using namespace ...

2019-08-23 11:45:00 118

转载 BZOJ2839 集合计数

看到网上很多篇博客对此题的理解都是错误的,找了很久才找到两篇理解正确的博客,贴在这里方便复习一篇博客使用容斥系数直接推,另一篇则是借助二项式反演,方式不同但代码都是一样的二项式反演版容斥原理版转载于:https://www.cnblogs.com/White-star/p/11394849.html...

2019-08-22 15:56:00 100

转载 【模板】筛欧拉函数

埃氏筛复杂度:\(O(nlogn)\)go(i,1,n)ou[i]=i;go(i,2,n){ if(ou[i]==i) for(int j=i;j<=n;j+=i) ou[j]=ou[j]/i*(i-1);}线性筛复杂度:\(O(n)\)phi[1]=1;go(i,2,n){ if(!vis[i]){ p[++tot]=i; ...

2019-08-21 20:04:00 46

转载 【模板】莫比乌斯反演(ACWing215)

很久没做过莫比乌斯反演的题了,发现自己忘记莫比乌斯函数的线性筛法了,贴个模板方便复习吧有一个埃氏筛做法,为了避免弄混,就只记一个好了#include<bits/stdc++.h>using namespace std;#define go(i,a,b) for(int i=a;i<=b;++i)typedef long long ll;#define in...

2019-08-21 19:56:00 120

转载 学习笔记

2019.1.25:1.慎用getchar和scanf("%c"),这两个都会读回车和空格,用cin或者scanf("%s")会更好2.处理环形问题,将数组开大一倍,令a[i+n]=a[i],就能实现循环的问题。3.计算只包含加法,减法和乘法的整数表达式除以正整数n的余数,可以在每步计算后对n取余,结果不变。[由该结论可得出已知n%m==x,可得(n10+k)%m==(x10+k)...

2019-08-20 11:14:00 50

转载 题解 P1486 【[NOI2004]郁闷的出纳员】

Vector大法好~核心代码只有短短的10多行,你值得拥有multiset捞爆了,只有40分Vector提交记录vector通过lower_bound和insert操作能够维护一个有序递减/递增的线性表insert复杂度虽然是O(n),实际表现却非常快(可以看做sqrt(n)),配合lower_bound能够做到许多事情在这道题中,我们重载了lower_bound的<...

2019-08-20 11:11:00 78

转载 NOI2019网络同步赛 游记

作为一个高一才入坑的OIer,明年就要参加NOI退役了,不如先留下这篇游记DAY1听去年参加同步赛的大佬说网很卡,但我觉得一点都不卡,虽然主页看上去很lowT18点半拿到试卷,看了下第一题,好像可以骗到不少分。因为第一次考NOI,对题目的难度没有概念,感觉不爆零就挺不错了,还挺惊喜的,打了个n*t的DP,期望得分70.然后听说暴搜能AC?惊了。赶紧打了个暴力爆搜n>=20...

2019-08-19 20:47:00 173

空空如也

空空如也

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

TA关注的人

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