自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 伙计们我回来了

伙计们我回来了回来了 回来了 回来了 好!

2021-02-05 20:33:20 213 3

原创 新生活开始啦!大家也要加油

2020 年到了自己也开始新生活了再见 ACM .你好 新生活@zly @syh @biubiubiu @nitrogens @lls 新的篇章啦

2020-01-21 15:30:24 242

原创 LCT 的基础 Splay简单食用指南

我是不会用Splay写平衡树的(真香为了学LCT 记一份Splay板子//普通平衡树/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>#include <cstring>...

2019-09-18 19:59:31 169

原创 fhq_treap简单食用 一种不用旋转的平衡树

我们都知道 treap是tree+heap也就是树堆那treap和splay他们都是比较好的平衡树 至于红黑树就不提了 代码量能雷死你至于sbt听说性能挺优越的 但是没学今天讲的是fhq_treap也就是非旋平衡树我们知道为什么splay和treap需要旋转呢 因为如果你遇到一条链的查询 那么你的时间复杂度就是 O(链的长度) 但是树在某些情况下会退化成链 那么操作就会退化复杂度所以sp...

2019-09-17 11:34:32 281

原创 淀粉质(点分治)简单食用指南

第一次学点分治是去年的九月份。到现在已经一年了。今天希望通过这篇博客让大家都能好好吸收淀粉质。首先我们要知道分治是什么天下大势 分久必合 合久必分什么是合?什么是分?给你一棵树长这样我们发现上面有重心两个字 重心真是一个好的性质 关于为什么选重心可以观看 漆子超的论文这样我们对第一个重心处理出所有路径 然后发现 路径有图上六条我们需要两两合并 就像A - D 和 A - B合并 ...

2019-09-16 21:15:09 193

原创 小清的线段树25题日志01 线段树下你和我 欢乐多又多

前言 难度大致会按排序来 就不写总结啦 嘻嘻 适合刚学线段树的人(和我一样 练手CF1041C 简单的线段树运用题意 有nnn杯咖啡 每天有mmm个小时工作时间 喝完一杯咖啡必须等ddd时间才能喝下一杯问你怎么安排使得喝完所有咖啡的天数最小做法 直接上贪心 set上二分即可 但是本着练练自己线段树的水平写了个线段树(忘记<<2 这次<<1无限RE 调到思考人生...

2019-04-23 19:20:17 365

原创 【kuangbin带你飞 专题十二 基础DP1】题解 除了 K S

A题意 求最大M子段和其实就是 dp[i][j] 代表以i结尾(i必须取) 已经有j个子段的最大值那么dp[i][j] 只能通过 dp[i-1][j] 和 dp[i-1][j-1] 过来dp[i]代表到i位置分的段数滚动数组优化一维后发现其实和BZOJ 1270有异曲同工之妙记录一个最大值 然后最大值作为上一个循环的最大值传过来进行直接传递#include<cstdio>...

2019-04-17 14:13:44 246 3

原创 跟着biubiubiu学算法之并查集

并查集 第一题hdoj 1213题意 告诉你几个朋友认不认识 认识的在一桌 问有几个桌子并查集一下 查找Find(i)==i 的个数/*hdoj 1213*/#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include &lt...

2019-04-10 00:22:24 178

原创 单调栈简单的入门

希望把单调栈这个东西能讲给大家听,欢迎大家观看。首先我们要知道单调栈是什么 就是满足单调性质的栈,所以有单调递增栈 和单调递减栈我们想知道单调栈有什么用呢?给你n个数的数组 叫你找第i个数作为最大值/最小值的区间 经常有题目这样用这个该如何寻找呢? 我们知道 如果你能找到这个数左边第一个比他小的数 和 右边第一个比他小的数 是不是意味着这两个数之间的数肯定都比这个数大 那么这个数就...

2019-03-07 10:28:45 305

原创 跟着biubiubiu学算法之 莫队算法

莫队算法 第一次接触到这个题目应该是黑龙江省赛 和东北赛 当时想着一定要学会这个算法 结果拖了四个月今天开始学莫队算法首先 莫队算法是为了解决离线查询的题目 我们知道 很多区间问题线段树可以实现 但是让我们头疼的是一些信息线段树很快实现这时候我们就需要用到莫队算法 莫队算法的好处就是他首先一个区间【L,R】 可以用【L,R+1】,【L-1,R】【L+1,R】【L,R-1】O(1)知...

2018-08-31 01:56:56 327

原创 [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher 题解

A#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;cmath&gt;#include &lt;algorithm&gt;#include &lt;iostream&gt;#include &lt;sstream&gt;#include &lt;map&gt;using namespace std;cons

2018-08-14 22:11:12 230

原创 字符串最小/最大表示法 学习与总结

循环字符串的最小表示法的问题可以这样描述:对于一个字符串S,求S的循环的同构字符串S’中字典序最小的一个。由于语言能力有限,还是用实际例子来解释比较容易:设S=bcad,且S’是S的循环同构的串。S’可以是bcad或者cadb,adbc,dbca。而且最小表示的S’是adbc。对于字符串循环同构的最小表示法,其问题实质是求S串的一个位置,从这个位置开始循环输出S,得到的S’字典序最小。一种朴素的方...

2018-06-26 14:45:27 1099

原创 KMP算法学习与拓展kmp算法入门与题目

其实kmp算法可以看作是暴力的优化 中心思想很简单字符串S Ljq lJq ljQlj ljqljq I love you 模式串(匹配串)ljqlj进行匹配子串的时候很简单我这次ljq对应第一个Ljq对不上 我继续向下 因为它的Next数组是0 暴力暴力 突然 ljQlj遇上了ljqlj 哇 这两个前面两个一样的 额Q对不上q 那我们怎么实现心里想的 直接让模式串的lj 和字符串的下个lj匹配呢...

2018-06-24 21:39:59 201

原创 介绍一下自己

我是来自哈尔滨工程大学的一名快大二的Acmer,大一上船舶工程专业 不会C语言,大一下开始学C语言开始学算法现在和我的队友@zly和syh(无友链)一起努力 写个博客记录一下自己的梦想轨迹万一成功了呢?...

2018-06-23 19:01:50 397 4

原创 Educational Codeforces Round 104 (Rated for Div. 2) A-E 题解

A. Arena介绍了一下博弈的规则 我们发现只有从顺序第二个不同的数的人开始 有机会获胜 因为他可以不断找比自己积分少的人单挑#include<cstdio>#include<iostream>#include<vector>#include<map>#include<set>#include<stack>#include<algorithm>#include<cstring>#includ

2021-03-13 15:33:33 185

原创 Codeforces Round #702 (Div. 3) A-G

A. Dense Array给你 nnn 个数的数组,定义数组有效为任意两个相邻的数 max(arr[i],arr[i−1])/min(arr[i],arr[i−1])<=2max(arr[i],arr[i-1])/min(arr[i],arr[i-1]) <= 2max(arr[i],arr[i−1])/min(arr[i],arr[i−1])<=2 那么按照题意check 补数即可,注意要从小的去不断的乘2去构造,大的 / 2 会有精度损失#include<cstdio&gt

2021-03-12 15:50:44 159

原创 Codeforces 1492 E Almost Fault-Tolerant Database

E. Almost Fault-Tolerant Database这题给你 n∗mn*mn∗m 个数,问你能否找到一行 mmm 个数,使得这 mmm 个数与每一行不同的数不超过 222 个我们先考虑答案肯定和第一行不超过两个数(如果存在) 那么我们去拿第一行假设作为答案与其余行求 maxdiffmaxdiffmaxdiff 如果 maxdiffmaxdiffmaxdiff >= 555 肯定无解,因为你只能换两个位置 5−2=3>=25-2=3 >= 25−2=3>=2 那么当

2021-03-11 23:05:50 172

原创 codeforces 1496 D. Let‘s Go Hiking

D. Let’s Go Hiking博弈规则读题即可这边给出解题性质 首先如果有最长路 统一默认起点在左边的话 肯定不会有大于111条的不同起点的最长路 否则后手选其他最长路即可那么我们只要判断是否最长路满足左边与右边相等(如果不相等 后手只要从唯一的奇数里倒数第二个点出发 强行把这条路构造成偶数 后手就赢了) 并且是奇数(奇数保证先手赢)#include<cstdio>#include<vector>#include<cstring>#include&lt

2021-03-10 23:02:37 358 4

原创 Codeforces Round #706 (Div. 2) A-D

A. Split it!题意给你 nnn 长度的字符串,问是否满足找出 kkk 个字符串 满足这 kkk个字符串作为前缀 与其翻转作为后缀 中间拼第 k+1k+1k+1 个字符串组成 我们按题意枚举即可#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include<map>#include<set>#include<vector

2021-03-10 23:01:06 173

原创 Codeforces Round #705 (Div. 2) A-D

明显感觉到码力下降了 需要老年人康复训练计划这场码力比较大 需要思维比较巧来减少码力 算是少见的cf div2了A. Anti-knapsack给你 nnn 和 kkk ,问是否有办法找出最大的集合使得集合中任意子集和不为k 我们发现每次分奇偶去掉 m/2m/2m/2 (分奇偶),那么也意味着 i<=m/2i <= m/2i<=m/2 (分奇偶)也凑不出来 毕竟按照我们的定义可以无限递归下去 这样我们凑 m=11m = 11m=11 的时候, 11=1+3+711 = 1 + 3 +

2021-03-10 16:32:55 155

原创 AtCoder Beginner Contest 194 D-E

Journey给你nnn个点的图,你一开始在第一个点,问你将图变成全联通的期望为多少我们先思考下这个问题:给你nnn个点,你每次可以随机涂一个,问你将所有点涂上颜色的期望为多少期望dpdpdp通常反着求解 设dp[i]dp[i]dp[i] 代表涂好iii个点后将nnn个点涂上颜色的期望,那么dp[n]dp[n]dp[n] = 000 ,dp[i]dp[i]dp[i] = (i/n)dp[i](i/n)dp[i](i/n)dp[i] + (n−i)/n∗dp[i+1](n-i)/n * dp[i+1](

2021-03-08 02:24:25 519 2

原创 Codeforces Round #703 (Div. 2) A-E 题解

Shifting Stacks给你 n 长度的数组,每个下标包含 000-nnn 个木块 其中可以将某一位置的木块向右边平移 请问是否能凑出高度严格上升的数组 一开始想简单了 直接判断木块的和是否大于 (111+(n−1)(n-1)(n−1))*(n−1)(n-1)(n−1)/2 但是这样是错误的 因为你不能一定凑出这样的排列 假如都在最后一列 所以需要按照符合情况所需最小木板数去做模拟 check#include<cstdio>#include<cstring>#inclu

2021-03-08 02:09:29 211

原创 Codeforces 1494D Dogeforces 并查集+构造

Dogeforces题意 老板和员工,老板至少有两个员工,员工不会有下级员工,但是老板可能有自己的老板,那么公司的创始人自然就是树上的顶点 为最大的老板nn的矩阵每个值 Ai,j 代表 i 员工与 j 员工 LCA(他们共同老板)的薪水,那么显然 Ai,i 代表第i个员工的薪水 给你薪水矩阵 构造出公司组织结构Trick:我们发现创始人也就是最大的老板 他是可以连无数条边到自己的下属 于是我们将其单独抽出来 为第 n+1 个公司的人 也为公司创始人 这个矩阵是角平分线对称的 所以我们只需要考虑右上的情

2021-03-03 19:08:34 311 1

原创 Educational Codeforces Round 105 (Rated for Div. 2) A-D题解

A. ABC String题意 给你一个只包含 A、B、C的字符串,每类字符都有可能代表左右括号中的一种,问你是否能找到一个方式使得括号匹配合法三个字符,每个字符有两种情况 总计 2^3 = 8次枚举 + 判断括号匹配合法性即可#include<cstdio>#include<cstring>#include<vector>#include<cmath>#include<iostream>#include<algorithm&

2021-03-03 19:07:02 322 1

原创 Codeforces Global Round 13 A-E题解

A01序列,一个操作对某一位取反,一个操作问你当前第k大是多少维护一个当前最后一个1所在排名#include <cstdio>using namespace std;const int MAX_N = 100025;int arr[MAX_N];int main(){ int n,m,sum = 0; scanf("%d%d",&n,&m); for(int i = 1;i<=n;++i) { scanf("%

2021-03-02 13:42:52 248

原创 Codeforces Round #704 (Div. 2) A-E题解

A Three swimmers题意 三个人每人游一个来回时间分别是a、b、c,那么在 a、b、c的倍数时间点上 三个人均会在左边的点,题目问你p时刻来 还要等多久最快遇到三个人 1e18 除法判断是否整除相减即可#include<cstdio>#include<vector>#include<cstring>#include<cmath>#include<iostream>#include<queue>using na

2021-03-02 01:58:25 145

原创 CERC2017 I: Intrinsic Interval 线段树

CERC2017I题目是求最小的好区间好区间就是一段区间都是连续的数 对于好区间显然有个数据结构叫析和树是可以求解的但是我们用线段树怎么处理呢首先我们知道 好区间 l 到 r是满足区间maxx-区间minn = r - l然后我们又知道 两个好区间的交 一定也是好区间反证法:假如这个交不是好区间 差几个数 那么这几个数如果在左边 那么和右边的数就不能构成好区间所以两个好区间的交也一定...

2019-11-01 11:57:39 250

原创 2019 CCPC 秦皇岛游记

补坑ing

2019-10-02 17:42:16 354 3

原创 【P4146 序列终结者】fhq_treap

P4146这题和文艺平衡树差不了多少 但是换了一个处理区间的方式 常数竟然小了一点 下次卡常就用这种方式了 之所以会小 是因为和之前相切的方式来讲 这里这样切的长度小一点自然期望时间复杂度也小了一点维护两个lazy标记 区间不断down下去即可注意区间加我们在外面就得维护但是swap是针对子树的 所以必须要传进去才能进行swap/* if you can't see the r...

2019-09-17 17:06:58 203

原创 【P2234 [HNOI2002]营业额统计】fhq_treap

P2234](https://www.luogu.org/problem/P2234)其实就是问每一天的前驱和后继 取个min即可 所以我们上平衡树/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdi...

2019-09-17 15:37:31 218

原创 【CF293E. Close Vertices】点分治 + 树状数组

CF293E现在有一棵树,每条边的长度都为1,然后有一个权值,求存在多少个(u,v)点对,他们的路径长度 <= l, 总权重 <= w.观察到边权长度都是 1 所以我们可以对路径的长度建立树状数组每次查询区间内满足的w即可//现在有一棵树,每条边的长度都为1,然后有一个权值,求存在多少个(u,v)点对,他们的路劲长度 <= l, 总权重 <= w./* if...

2019-09-16 20:51:17 151

原创 【Codeforces161D Distance in Tree】点分治

codeforces161D对于这种题我们一般都是直接遍历因为直接遍历的桶通常比较小 比较优秀/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>#include <cstring...

2019-09-16 19:36:32 112

原创 【P4149 [IOI2011]Race】点分治

P4149cnt[i] 代表路径和为 i 需要的最少边数那么我们update只要加边update就行 ,如果Clear就是删一条边的影响然后去重复影响 注意cnt数组要开1000000/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq...

2019-09-16 15:49:18 129

原创 【Codeforces 342 E】Big-small算法

cf342E这题算是接触的第一个Big-small算法给你一个树 一开始大家都是红点或者白点一开始根是红点 两个操作 把一个点改成红点 询问某个白点到最近的红点距离是多少巧到我们存 sqrt(m) 个询问 每查一个白点我只要比dis和sqrt(m)个红点比较一下距离 然后每到sqrt(m)我就跑一次dijstra即可/* if you can't see the repay ...

2019-09-16 15:47:01 278

原创 2019 ICPC南昌邀请赛比赛游记 队伍名:莫比乌斯

南昌队伍是学长临时组的 飞的那天和学长们坐 6.1的飞机 川航还发了棒棒糖 下飞机就落在了座位上了然后难道大暴雨 我鞋子都湿了 我们和学长去了酒店 酒店是很有情趣味道 滑稽于是拍下了学长的背影 学长在准备什么人工智能训练营比赛吧从酒店出来 学长请我吃了桂林米粉 嗦粉嗦粉热身赛的时候 提前给学长打开python 因为我不会python学长说工程什么的也有点忘了 试了下最简单的hellow...

2019-08-18 21:41:21 422 3

原创 【51 nod 1295 XORkey】可持久化字典树

51nod1295区间查询记得转换为前缀思想 然后用可持久化数据结构维护前缀和那么查询区间就可以实现了从高位往下 那一位和自己那位相反就进行异或/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdi...

2019-08-16 00:15:00 90

原创 【51nod 1593 公园晨跑】st表

51NOD1593题意 其实就是选两个点 d[i]表示他们的距离前缀和 h[i]为原来高度的两倍那么就是 d[i] - d[j] + 2(h[i] + h[j]) 可以看成两个式子 d[i]+h[i] - (d[j]-h[j])那是不是取前面的最大和后面的最小就可以符合了?有可能两个值在同一个下标 需要取别的情况讨论用st表会特别简洁优美/* if you can't see ...

2019-08-15 23:13:27 127

原创 【2019牛客暑期多校训练营(第九场)H Cutting Bamboos】莫队 + bit +二分

H知道题意以后离线来做两个树状数组 一个存高度 一个存个数那么你二分的是mid你就要MID = ceil(向上取整)mid, 答案为高度超过这个MID的和 减去有多少个高度超过MID的竹子个数*mid 进行二分check 一开始ans没有 = 0.0 一直WA后来才知道二分有问题 好在队友的帮助下 解决了此题#include <map>#include <set&g...

2019-08-15 18:04:31 154

原创 【2019牛客暑期多校训练营(第九场)B Quadratic equation】 二次剩余

B一开始只知道二次剩余 不会求值然后 x+y = n % p那么 (x+y)^2 = n^2 %p那么可以推出 (x-y)^2 = b^2 - 4*c %p然后验算即可#include <stdio.h>#include <stdlib.h>#include <string.h>#include <algorithm>#in...

2019-08-15 18:02:00 133

原创 【HDU 5692 Snacks】线段树+dfs序

hdu5692首先这题做了 上一个树链剖分完全就可以谢dfs序了因为他从根开始就不用树链剖分了 上题还写了树链剖分 傻了白给少年ljq/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>...

2019-08-14 23:39:56 85

空空如也

空空如也

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

TA关注的人

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