自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树上启发式合并【学习博客例题】

学习博客例题:牛客练习赛:DongDong数颜色代码:#include<bits/stdc++.h>#define lson sign << 1, l, mid#define rson sign << 1 | 1, mid + 1, r#define lowbit(x) (x&(-x))typedef long long ll;...

2019-10-10 20:16:16 306

原创 树上最近点对【最短路】

题意:给定一棵n个点(点编号为 1,2,⋯,n) 的树,标记出k个不同的点 s1​,s2​,⋯,sk​,对于每个 si​求出剩下的标记点中哪个离 si​最近,输出距离。注意:这不是一个满分做法,复杂度 O(nlog(n)) ,树形dp复杂度可以达到 O(n)。解析:新建一个点向所有标记点连一条权值为 0 的边,并作为源点跑 Dijkstra ,可以求出离点 u 最 近的标记点 f...

2019-10-08 20:44:30 459

原创 Balance of the Force 【二分图+枚举】

传送们废话:队友告诉我题意后,我第一反应是二分答案+2-sat,问了下数据范围2e5....,芽儿呦边都建不了。。。。训练赛过程中也没有把这道题A掉,队友其实已经想到了解法的一部分。解题思路:首先我们肯定得判断答案是否有解,即对冲突条件建边,然后判断是否为二分图。如果有解:对于每一个连通块来讲,存在两种方案分配(因为存在冲突条件限制),但是两种方案不能同时选择,答案要求我们选择方案中极差...

2019-09-25 17:41:48 245

原创 P4197 Peaks 【Kruskal重构树】

传送门Kruskal重构树的基本应用吧,可以拿来当一个模板用,需要注意的是需要开双倍空间(被RE到死。。。),需要按题目需要对边进行排序。代码:#include<bits/stdc++.h>#define lson sign << 1, l, mid#define rson sign << 1 | 1, mid + 1, r#define l...

2019-09-23 21:52:02 219

原创 excrt 【模板】

void exgcd(ll a, ll b, ll &x, ll &y, ll &g) { if(b == 0) { g = a; x = 1; y = 0; return ; } ll x1, y1; exgcd(b, a % b, x1, y1, g); x = y...

2019-09-17 21:06:57 243

原创 Comet OJ - Contest #8 D 菜菜种菜

传送门官方题解(讲的很好)解法:我们将所有土地排成一行,可以很好的转化为区间问题,每次询问一个区间 [L,R] 中符合条件土地的菜值和。想要一个土地符合条件,它能够到达的土地必须在询问区间之外或者不存在。意思就是它左边最近能够到达的土地 x ( 满足条件 x<L ,不存在可以到达的土地 x=0 ),同理它右边最近能够到达的土地 y (满足条件 y>R ,不存在可以到达的土地 ...

2019-08-14 10:32:33 149

原创 2019 HDU 多校三 Game【博弈+莫队】

传送门首先就给我们一个玩游戏的策略,很明显知道 SG(x)=x ,想要 Alice 赢,区间SG(x)异或和不为0,我们可以直接处理前缀异或和,然后询问区间不同的异或对,典型的带修莫队,注意细节就可以了。注意答案会爆 int 。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;con...

2019-08-01 10:39:32 228 1

原创 P1903 [国家集训队]数颜色 / 维护队列 【带修莫队】

传送门带修莫队的模板题,多了时间这一维,同样是按照莫队暴力的思想,如果时间跑过了,就将时间倒流,否则就时光加速。结合代码更容易理解顺便贴个代码当模板代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1e6 + 5;int n, m, ans[maxn];int pos[maxn],...

2019-07-31 20:08:47 216 6

原创 字符串算法【模板】

学习博客:字符串哈希:https://blog.csdn.net/pengwill97/article/details/80879387 (好像求区间有点小问题)马拉车Manacher:https://blog.csdn.net/Clove_unique/article/details/53750322回文自动机/回文树:https://blog.csdn.net/Clo...

2019-07-29 10:31:31 167 1

原创 2019 HDU 多校二

1002Beauty Of Unimodal SequenceLIS+贪心:up[i][0] 表示以 i 结尾的最长严格上升序列的最长长度;up[i][1] 表示以 i 结尾的单峰最长的最长长度;down[i][0] 表示以 i 开头的最长严格下降序列的最长长度;down[i][1] 表示以 i 开头的单峰最长的最长长度;上面的四个数组我们可以用线段树很容易就可以维护出来,然...

2019-07-25 14:13:38 195 2

原创 第K小团

技巧:利用优先队列找出第K小团,然后用 bitset 来存图,可以利用其自带函数直接判断是否可以新增点。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 105;int n, k;ll w[maxn], c;bitset<maxn> m...

2019-07-24 10:01:43 240

原创 2018CCPC吉林赛区 The Moon【期望DP】

传送门DP 递推公式表示到达最终状态的期望表示从 i 转移到 j 的概率表示从 i 转移到 j 对花费期望DP通常倒推,有这道题我们可以知道当 q=100%的时候,当前情况按照二项式分布,期望为 p/100;需要注意题目存在1.5%,我们需要将概率乘以2再计算,然后按照上面的公式倒推每一种情况即可。///#include<bits/stdc++.h>...

2019-07-19 20:04:50 247

原创 2019 西安邀请赛 J And And And【树形DP】

传送门思路:如果要求异或为0的路径的个数,这就是一个傻逼题。但是他要求的集合的个数。可以从刚才那个问题扩展开来,问有多少条路径的子路径的异或值为0。这是一个计数的问题,我们知道异或有一个性质 x^x=01为树的根节点,xor[i] 表示i到根节点路径上的的异或值我们可以发现当两个点(s,e)不在一条链上时,ans 应该加上 size[s]*size[e]如果两个点在一条链上的时候( ...

2019-07-17 11:24:57 203

原创 点分治【模板】

推荐学习博客:https://blog.csdn.net/a_forever_dream/article/details/81778649https://www.cnblogs.com/bztMinamoto/p/9489473.htmlhttps://www.luogu.org/blog/user9012/dian-fen-zhi-lve-xie贴个模板(洛谷Tree):///#inc...

2019-07-16 09:16:45 148

转载 CLion 编辑器的各种问题【转载】

Clion设置编译器MinGW、Clion设置字体大小、Clion设置tab进四格、解决CLion输出中文乱码、解决CLion输入EOF且输出中断、错误:cannot open output file CLion 是一款专为开发C及C++所设计的跨平台IDE...

2019-07-15 14:10:26 7655 2

原创 [CQOI2011]动态逆序对【CDQ分治】

传送门主席树题解传送门:https://blog.csdn.net/qq_42211531/article/details/90034520这篇博客也算是填了以前的坑,学会了CDQ分治来做这一道题。以前做这一道题的时候,思路是对的,但是我不知道维护我想要的信息,学会了CDQ分治,这就是一道三维偏序的题。只是这一道题要求两种情况的三维偏序。代码:///#include<b...

2019-07-14 19:59:05 169

原创 Floyd算法(多源最短路)

Floyd如果你有挑战程序设计竞赛第二版(群文件里面有PDF版本),你可以看P103讲解的很好。如果要用到 Floyd 算法建边方式基本都是邻接矩阵,因为时间复杂度为O(n^3),所以说n通常都不会很大。Floyd 可以求解多源最短路,传递闭包(POJ3660),求最小环。代码:#include<bits/stdc++.h>using namespace st...

2019-07-14 10:56:17 290

原创 邻接表(链式向前星)

邻接表(链式向前星)链式向前星:用来储存边的信息的以中方法。优点:速度快,节省空间,很常用如果我们用 Vector 来建边,相当于开的是一个动态的二维数组,较数组模拟来说比较慢。有时候还卡空间(被某一道题卡崩的YMF学长:我再用Vector建边我是

2019-07-14 10:25:26 900 5

原创 Codeforces 669E Little Artem and Time Machine 【CDQ分治+map】

传送门废话:读错题了,写了半天结果发现写了一道假题。题意:三种操作:操作①:在时间戳为T的多重集合中加入一个数字x。操作②:在时间戳为T的多重集合中加入一个数字x。操作③:询问在时间戳为T的多重集合中包好多少个数字x。解题思路:基础的二维偏序:对于操作时间 q1 和 q2,时间戳 t1 和 t2 ,数字 x 。 q1<q2 并且 t1<t2 操作②和操作①的数量差。...

2019-07-14 09:41:53 160

原创 P3674 小清新人渣的本愿【莫队+ bitset】

传送门bitset 大法好啊!!!bitset 用法:https://blog.csdn.net/vocaloid01/article/details/82798450解题思路:用 bitset 的每一位代表每一个数字是否出现,s1记录每一个数x出现的位置,s2记录 maxn -x 出现的位置 (maxn可以为数值上限)操作①:要求区间中是否能够找到满足条件的(x,y) x -...

2019-06-06 19:56:01 182

原创 P4113 [HEOI2012]采花 【树状数组 AC】【莫队/主席树 TLE】

传送门题意简述:给定一个长度为n的序列,有m次询问,每次询问一段区间,求区间中有多少个数出现次数超过1次这道题真的有点恶心。。。在洛谷上属于莫队,但是莫队会T,数据居然有2e6。莫队的想法很简单就不多提了。主席树:这道题和HH的项链有异曲同工之妙,后者这道题:将每个数右靠,保证区间中只存在一个相同的数。前者:我们用i棵线段树,维护[1,i ]的信息。如果区间中相同的数的数...

2019-06-06 14:45:17 254

原创 P4137 Rmq Problem / mex 【莫队】【主席树+思维】

传送门题目上给的 ai <= 1e9,第一反应就是离散化,细想一下区间一共就2e5,答案最大不就是2e5吗,大于2e5的数我们可以忽略,这样就可以减去离散化的步骤。莫队解题思路:莫队的就是优雅的暴力,我们可以直接暴力去找答案(稍微优雅一下),我们记录当前区间中每个数出现的位置,当我们的区间移动时。增加操作:如果增加的数==Ans,那我们的答案就会更新,然后暴力向后判断(只有这里最暴力...

2019-06-05 22:20:11 216

原创 Codeforces 633H. Fibonacci-ish II【莫队+线段树+公式】

传送门参看博客:https://blog.csdn.net/zearot/article/details/50850792题意:将询问区间中[ l , r ]中的数排序去重,然后求 d 为排序去重后的长度。解题思路:正解就是莫队算法,但是这道题的 add 操作和 del 操作很不好实现。首先要离散化,然后对每个数进行计数,只有数量从0到1或者从1到0时才真正进行集合的加入删除操作而...

2019-06-04 12:04:25 226 2

原创 第五届新疆省ACM-ICPC程序设计竞赛

A.Good 的集合三角形重心的公式 :我们只需要记录每个点坐标 mod 3 的个数,然后我们可以知道这样就只存在 9 种点集 (0-2)*(0-2)我们可以二进制枚举每种点集是否存在,然后去check。十分需要注意的一点:同一个点集的点,最多选取两个,如果选取了两个以上是不满足good点集的要求代码:///#include<bits/stdc++.h>///#...

2019-06-02 18:21:45 277

原创 2019西安邀请赛部分题解

题库链接D. Miku and Generals解题思路:按照题意可知给出的冲突关系肯定能够构成二分图,我们可以直接染色,存在冲突的关系可以看作一个连通块,每个联通块我们看作存在三种事件①选择染色为1 ②选择染色为0 ③什么都不选择 然后我们可以把问题转换为背包问题,约束条件:每个联通块里面选择一个事件。代码:///#include<bits/stdc++.h>///...

2019-05-28 19:46:35 350

原创 POJ - 3481 Double Queue 【Splay 模板题】

传送门最基本的Splay模板题,没有任何花里胡哨的操作,可以用于加深理解模板中每个函数。Splay学习博客:https://baijiahao.baidu.com/s?id=1613228134219334653&wfr=spider&for=pchttps://www.cnblogs.com/cjyyb/p/7499020.html ///推荐当...

2019-05-27 17:10:50 140

原创 Codeforces 552.C Vanya and Scales 【思维】

英文传送门 中文传送门很好的一道思维题,巧妙的利用到了进制的思想 =0,1,-1 分别表示不选择这个砝码,放在重物的另一边,放在重物一起我们可以通过来枚举来判断等式是否成立如果则等式为 等式右边可以被w整除,想要等式成立,那么m也必须被w整除如果 则等式为想要等式成立,那么(m-w^0)=(m-1)也必须被w整除如果 则等式为想要等式...

2019-05-26 16:56:12 146

原创 Codeblocks代码格式化风格/格式化快捷键

鼠标右键中Format use Astyle 就是对你代码进行格式化(可以设置快捷键)选择代码格式化的风格1.Setting->Editor->Source Formatter->style->Bracket style ///设置代码风格2.Setting->Editor->Source Formatter->Padding ///...

2019-05-26 12:58:04 1267

原创 2019河北省CCPC 舔狗【贪心】

传送门思路:每个舔狗只会喜欢一个人,每个人的选择就只有一个,要满足配对的舔狗数量最多,我们就应该选择喜欢人数少的舔狗来优先进行匹配。一个舔狗被多少人喜欢,就是这个点的入度。如果喜欢他的其中一个舔狗被配对了,那么这个舔狗的入度就应该减去1。我们就利用优先队列来维护每个舔狗的入度,然后去判断是否可以帮这只舔狗配对。///#include<bits/stdc++.h>///#...

2019-05-25 18:20:47 400

原创 P5283 [十二省联考2019]异或粽子 【前缀异或+可持久化Trie+优先队列】

传送门解题思路:区间的的异或和我们利用前缀异或来处理这道题和超级钢琴十分类似,只是转化成立异或,我们可以利用Tire来解决问题,因为要多次询问区间第K大异或,我们利用可持久化Trie来维护前缀异或和。我们固定区间的右端点,把每个每个区间的异或最大值放于堆中去维护,每当我们取出一个数后,我们往堆里面放入下一个异或最大值。类似再Trie树上询问区间第K大异或。代码:#include&lt...

2019-05-23 16:20:47 268

原创 P2048 [NOI2010]超级钢琴 【主席树+前缀和+优先队列】

传送门题目描述小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当且仅当这两个...

2019-05-23 14:18:46 190

原创 P2756 飞行员配对方案问题 【网络流24题 最大流】

传送门废话:最大流模板题思路:二分匹配也可以写,最简单的网络流,只需要增加超级源点和超级汇点即可超级源点->外籍飞行员 (流上限为1)外籍飞行员->英国飞行员(流上限为1)英国飞行员->超级汇点(流上限为1)最大流就是最多匹配数,我们可以通过每条边的反向边来判断是否匹配代码:///#include<bits/stdc++.h>///#incl...

2019-05-21 17:57:19 1515 1

原创 P4014 分配问题 【网络流24题 最小/大费用最大流】

传送门废话:应该是一道最大流最小费用流的模板题解题思路:在保证每个人都有工作的条件下获得的收益最大和最小。收益最小:费用流模板。收益最大:将收益取反,跑一遍板子,答案就等于最小费用取反。一个超级源点 - > 每一个人 (流上限均为1,费用为0)人->工作 (流上限为1,费用(最小收益为 Cij,最大收益为 -Cij ))工作->超级汇点(流上限为1,费用为0)代码:...

2019-05-21 17:49:28 1710 2

原创 Power OJ 2478: 最短路问题

传送门题意:求最短路,多了一个约束条件,可以将一条边的花费变为0或者两条相连的边的花费都变为0。废话:很早在OJ上看到的题,当时不会做,现在终于可以把这道题干掉了(结果自己疯狂WA,居然是多组输入!!!!!)解题思路:表示三种状态表示还没有使用过免费边表示还可以接着上一条边再使用一次免费边已经把免费边用光了代码:///#include<bits/stdc++.h>/...

2019-05-12 21:05:50 145

原创 西北大学:西湖奇遇记Ⅰ【最短路】

传送门看代码更容易理解///#include<bits/stdc++.h>///#include<unordered_map>///#include<unordered_set>#include<iostream>#include<cstring>#include<cmath>#include<qu...

2019-05-12 19:32:40 185

原创 [CQOI2011]动态逆序对 【主席树+树状数组】

传送门废话:这道题和当初队长他们去电子科技大学的校赛A题几乎是一样,这道题没有挂在他们的OJ上,无意之间发现了这道题,赶紧补一下。这道题的做法也太多了吧。。。。。分块会板子(这道题不会),CDQ分治不会,只会大佬说的动态主席树板子题,然后拿来改一下就能过了。。。解题思路:求解逆序数,我们常常用到树状数字来解决。对于每一个数num[i]对逆序数的贡献:或者是,对于删掉每一个数,我们只需要将他的贡...

2019-05-09 15:07:14 325 2

原创 P2617 Dynamic Rankings【动态第K大 树状数组+主席树】

传送门中文题目,题意不再叙述!实现方法:静态第K大,我们利用就是前缀和的思想来建立的线段树,[L,R]的状态由R状态的线段树减去L-1状态的线段树得到的。既然就是前缀和而且存在修改操作,我们可以利用树状数组来解决这个问题。原本处于下标 i 的线段树 代表[1 - i ]所有元素的线段树,那么在树状数组中我们要怎么得到同样的一棵树呢?我们知道树状数组中存在 lowbit(x) 操作,我们可以...

2019-05-09 14:45:55 192 3

原创 Power OJ 2840 伯陵防线【可持久化线段树】

传送门废话一波:这道题是几个月前比赛的题,当时就我一个人开了这道题,我当时写的可持久化线段树,但是思维出错了,一直WA。这道题还可以用树状数组或者线段树来写,但是我想不到。。。。出题人博客:https://blog.csdn.net/swust5120166213/article/details/86703350解题思路:一对华农兄弟的条件就是两个人均在对方的防御范围内。我们可以认为为...

2019-05-08 22:25:17 191

原创 [SDOI2013] 森林【可持久化线段树+启发式合并+LCA】

传送门吐槽:题目上给的testcase 太迷惑人了。。。题目描述:小Z有一片森林,含有N个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有M条边。小Z希望执行T个操作,操作有两类:Q x y k查询点x到点y路径上所有的权值中,第k小的权值是多少。此操作保证点x和点y连通,同时这两个节点的路径上至少有k个点。 L x y在点x和点y之间连接一条边。保证完成此...

2019-05-07 12:46:16 131

原创 The Stream of Corning 2【可持久化线段树】

2018 ICPC Asia Nakhon Pathom Regional Contest K题意上的重点:In the given inputs, the CURRENT_TIMESTAMPS will be strictly increasing between consecutive events.(给定的事件时间戳是严格递增的)解题思路:方法①:题目上是事件和查询都是一起给出的,不能...

2019-05-06 16:29:55 182

空空如也

空空如也

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

TA关注的人

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