自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构专题1.0

文章目录数据结构专题其它数据结构st表单调栈滑动窗口笛卡尔树Dsu on the tree并查集带权并查集扩展域并查集可持久化并查集可撤销并查集线段树普通线段树兔队线段树树链剖分线段树合并线段树分治字典树异或最小生成树kd_tree可持久化数据结构可持久化线段树树上可持久化线段树分治点分治点分树数据结构专题其它数据结构st表模板:ll ans[N], maxn[N][20], minn[N]211[20], Log[N];void init(){ Log[1] = 0;//预处理log函数

2021-05-31 15:29:27 171

原创 数论专题1.0

数论专题质数欧拉线筛求质数时间复杂度 o(n)o(n)o(n)代码:int prime[N],vis[N],top=1;void Prime(){ for (int i = 2; i < N; i++) { if (!vis[i]) prime[top++] = i; for (int j = 1; j < top && i * prime[j] < N; j++) { vis[i * prime

2021-04-08 23:36:30 242

原创 钉钉linux ubuntu 无法打中文的问题

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入sudo vim opt/apps/com.alibabainc.dingtalk/files/Elevator.sh##

2022-01-12 09:22:35 1192 2

原创 docker

初识dockerdocker的架构镜像:Docker镜像,就相当于是一个root文件系统容器:镜像和容器的关系,就像面向对象程序设计中得类和对象一样,镜像是静态的定义;容器是镜像运行的实体。容器可以被创建、启动、停止、删除、暂停等。仓库:仓库可看成一个代码控制中心,用来保存镜像。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PciNtCKI-1626797007645)(https://note.youdao.com/yws/res/552/WEBRESOURCE

2021-07-21 00:04:02 136 2

原创 面试中常考的一些算法

面试中常考的一些算法快速排序#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 7;int a[N], n;void qsort(int l, int r) { if (l >= r) return; int i = l + 1, j = r; swap(a[l], a[(l + r) >> 1]); while (i <= j) {

2021-06-22 19:28:42 268

原创 浅谈虚拟内存转换为物理内存

浅谈虚拟内存转换为物理内存### 什么是虚拟内存?虚拟内存是操作系统管理内存的一种技术,它使应用程序有一段连续可用的地址空间的假象,实际上是很多个物理内存碎片,它可以使应用程序拥有比实际物理内存更大的逻辑内存,实际上上将程序中不需要的数据放到硬盘上,需要时在进行数据交换。主要原理:每个进程拥有独立地址空间,这个地址空间被分多个大小相等的快,称为页,这些页被映射到物理内存,但不需要映射的连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分

2021-06-15 16:39:31 4373

原创 AtCoder Beginner Contest 203

AtCoder Beginner Contest 203D - Pond题目链接题意:给你一个n∗nn * nn∗n的矩阵,每个位置都有一个元素AijA_{ij}Aij​ ,现在给你一个整数kkk, 让你求边长为kkk的所有子矩阵中第k∗k2+1\frac{k * k} {2} + 12k∗k​+1的元素最小。题解:求这种第kkk大元素,很容易想到二分答案。 如何check呢?如果在一个矩阵中比当前check的答案小于等于的个数,大于kkk, 那么就向小的方向分,否则向大的分。至于怎么判断有

2021-05-31 16:34:11 282

原创 [HAOI2015]树上染色

[HAOI2015]树上染色题目链接题意:给你一颗大小为nnn的树,然后将树上的kkk个点染成黑色, n−kn - kn−k个点染成白色。问黑色两两之间的距离,与白色两两之间的距离和最大是多少?题解:这题写了一晚上,发现自己dp方程就设错了。看了题解才知道怎么写。网上题解很多,但是很多都忽略一个很重要的细节。下面我详细说一下。设 dp[u][j]dp[u][j]dp[u][j]表示uuu为节点的子树中选jjj个黑点, 黑点两两之间的距离与 剩下的k−jk - jk−j个子树外的黑的点经过 子树u

2021-03-24 00:07:22 471

原创 Educational Codeforces Round 106 (Rated for Div. 2)

Educational Codeforces Round 106 (Rated for Div. 2)Educational Codeforces Round 106 (Rated for Div. 2)D. The Number of Pairs题意:给定 c,d,xc, d, xc,d,x,让你求有多少对a,ba, ba,b可以让,c∗lcm(a,b)−d∗gcd(a,b)=xc*lcm(a, b) - d * gcd(a, b) = xc∗lcm(a,b)−d∗gcd(a,b)=x题解:设

2021-03-19 13:11:19 185

原创 Wannafly挑战赛2

Wannafly挑战赛2传送门A Cut签到题,没啥好说的。#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 7;int a[N], n;int main() { cin >> n; int sum = 0; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); sum

2021-01-24 15:34:04 156

原创 AtCoder Beginner Contest 189

AtCoder Beginner Contest 189E - Rotate and Flip题解:(x,y)(x, y)(x,y)顺时针旋转90°后变成 (y,−x)(y, -x)(y,−x)(x,y)(x, y)(x,y)逆时针旋转90°后变成(−y,x)(-y, x)(−y,x)(x,y)(x, y)(x,y)以x=px = px=p对称时变成(2p−x,y)(2p - x, y)(2p−x,y)(x,y)(x, y)(x,y)以y=py = py=p对称时变成(x,2p−y)(x, 2

2021-01-24 15:00:45 265 2

原创 AtCoder Regular Contest 111

AtCoder Regular Contest 111链接A - Simple Math 2题解:⌊10Nm⌋%m\lfloor \frac{10 ^ N} {m} \rfloor \% m⌊m10N​⌋%m=⌊10Nm⌋−⌊⌊10Nm⌋m⌋∗m= \lfloor \frac{10 ^ N} {m} \rfloor - \lfloor{\frac{ \lfloor \frac{10 ^ N} {m} \rfloor }{m}}\rfloor * m=⌊m10N​⌋−⌊m⌊m10N​⌋​⌋∗m

2021-01-12 22:32:58 209

原创 Codeforces Round #695

Codeforces Round #695 (Div. 2)B. Hills And Valley题解:模拟改变每个数, 对于a[i]a[i]a[i]计算 变成 a[i−1]a[i - 1]a[i−1]的贡献, 和 a[i+1]a[i + 1]a[i+1]的贡献,枚举每个数, 最后取最优的就好了。#include<bits/stdc++.h>using namespace std;const int N = 3e5 + 7;int a[N], n;int cal(int pos

2021-01-12 21:52:32 100

原创 2020icpc 南京 Monster Hunter

2020icpc 南京 Monster Hunter题目连接题解:很简单的一个树行dp, 只是复杂度证明有点难了, 很多人都以为是 n3n ^3n3其实是 n2n ^ 2n2,你可以看成有多少对(x,y)(x, y)(x,y)总共也就 n2n ^ 2n2个, 所以复杂度为n2n ^ 2n2设 dp[u][i][0]dp[u][i][0]dp[u][i][0]为, uuu这个节点,用了iii次魔法, 且自己没有用魔法的最小值设dp[u][i][1]dp[u][i][1]dp[u][i][1] 为,

2020-12-23 23:45:55 474

原创 2020-12-18

2020蓝桥杯选拔赛题解A因为两条线段是平行于xxx轴的, 只要考虑这两条线段再xxx轴的投影是否相交。#include<bits/stdc++.h>using namespace std;typedef long long ll;int main() { ll x[5], y[3]; cin >> x[1] >> x[2] >> x[3] >> x[4] >> y[1] >> y[2];

2020-12-18 21:01:57 298 2

原创 回滚莫队

回滚莫队详解会了莫队可以了解一下回滚莫队,这玩意可以解决莫队解决不了的问题, 而且莫队能解决的它都能解决,还好写一点。不过没用学过莫队也没关系, 这玩意比莫队简单还好用。下面详细的说下回滚莫队的流程。假设现在有一个长度为nnn的序列和qqq次询问,每次询问都是查询[l,r][l, r][l,r]区间, 具体查询什么已经不重要了。考虑离线。首先将长度为nnn的序列进行分块,根据数学知识为n\sqrt{n}n​是最优的想在将所有的[l,r][l, r][l,r]按lll分块, 对于每同一快的[l

2020-12-16 23:35:25 285

原创 容斥于莫队

集合中的质数连接题意:给出一个集合和一个数m。 集合里面有n个质数。 请你求出从 1 到 m 的所有数中,至少能被集合中的一个数整除的数的个数。题解:容斥原理。先计算 m个数能把集合所有能整除的个数, 但是这样会重复计算, 比如 2, 3, 5 然后 30 即是 2的倍数又是 3的倍数又是5的倍数, 也就是第一次被计算三次, 然后枚举两个数的时候再减去, 枚举三个数的时候再加上, 奇数加偶数减。代码:#include<bits/stdc++.h>using namespace

2020-11-26 20:02:22 148

原创 武汉大学2020年新生程序设计竞赛

武汉大学2020年新生程序设计竞赛E 仓鼠与珂朵莉主席树 + 启发式合并思想题意:给你一个长度为n的数组, 每次操作选择一个区间 [l,r][l, r][l,r] 然后问 选择一个数 kkk 然就出 kkk 再这个区间的次数的乘积。题解:如果给你一个区间[l,r][l, r][l,r] 对于暴力的求法一般是枚举每个数, 再去查找这个数出现了几次,然后算出最大的贡献。这样对于每次询问都是 o(n)o(n)o(n) 的复杂度。如果我们每次只找 出现一次 且最大的数, 出现两次且最大的数, 出现三

2020-11-23 13:13:30 831

原创 AtCoder Beginner Contest 183

AtCoder Beginner Contest 183E - Queen on Grid题意:再一个矩阵中从1,号点到(n,m)(n, m)(n,m)号点你的总共步数。题解:前缀和优化dp 记得dp从(1,1)(1, 1)(1,1)赋值, 先把三维的dp先出来然后看看怎么用前缀和优化代码:#include<bits/stdc++.h>using namespace std;const int N = 2007;typedef long long ll;ll dp[N][

2020-11-16 16:27:30 139

原创 Codeforces Round #683 (Div. 2, by Meet IT

Codeforces Round #683 (Div. 2, by Meet IT)D. Catching Cheaters题意:给你一个字符串 sss,和 ttt 问 s,ts, ts,t的所有子串中 最长公共子序列 * 4 减去 两个子串的长度的最大值是多少。题解:考虑暴力:用 dfs进行模拟, 如果当前 s[i]==t[j]s[i] == t[j]s[i]==t[j] 那么这个字符产生贡献有两种第一种是 取 i与j的字符, 那么此时的答案是 + 4 -1 -1, 然后 i + 1, j

2020-11-16 14:05:52 168

原创 牛客练习赛

牛客练习赛3A题意:一只南美洲亚马孙河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起美国德克萨斯州的一场龙卷风。――蝴蝶效应由于这个理论的存在,大多数人认为将未来的事物送回过去将会引发严重的时间悖论,但事实上还存在另外一套理论。自然会对这类不和谐的蝴蝶效应做出调整,具体地来说就是触发一些小概率的恶性事件来抹杀穿越者来消除其对未来的影响。虽然听上去很荒诞,但Alicebell决定去验证这一假说,她将按1 ∼ n的顺序依次到访过去的n个时间点。这n个时间点各有一个能源参数A??

2020-11-11 18:27:42 288

原创 牛客练习赛2

牛客练习赛2An支队伍一共参加了三场比赛。一支队伍x认为自己比另一支队伍y强当且仅当x在至少一场比赛中比y的排名高。求有多少组(x,y),使得x自己觉得比y强,y自己也觉得比x强。(x, y), (y, x)算一组。题解:也就是找多少对 \(x < x1, y < y1 , z > z1\) 或者 \(x < x1, y > y1, z &l...

2020-11-10 11:53:00 164

原创 HDU - 6231

HDU - 6231题意:给你一个长度为n的数组, 将所有长度大于k的子串的第k大放入数组B中, 然后询问数组B的第m大是什么?题解:考虑: 二分答案如果我们知道当前答案为x, 那么怎么判断x是第几大呢, 可以在元素组里面用两个指针 \(l, r\)枚举每个位置的\(l\) 然后走r当出现的大于等于x数字的个数大与 \(k\)的时候停止 走r, 那么次使就会出现\(n -...

2020-11-07 14:36:00 97

原创 牛客练习赛1

牛客练习赛1A矩阵题意:给出一个n * m的矩阵。让你从中发现一个最大的正方形。使得这样子的正方形在矩阵中出现了至少两次。输出最大正方形的边长。\(n <= 500, m <= 500\)题解:考虑暴力枚举每个矩阵为 \(n ^ 3\)然后判断两个矩阵是否相等 \(n ^ 2\)显然复杂度爆炸, 如果将矩阵进行hash 然后o(1)判断两个矩阵是否相等,那么最后的复...

2020-11-07 14:25:00 204 1

原创 将博客搬至CSDN

将博客搬至CSDN

2020-11-07 14:00:00 38

原创 2020 ccpc 威海

2020 ccpc 威海G Caesar Cipher题意:给你n个数, 你有两种操作1.将区间 \([l, r]\)的数加1, 同时在模上655362.询问 \([l, l + x], [r, r + x]\) 问这两段区间是否一样判断两个区间是否一样?很容易想到哈希, 对于操作如果直接取模那么就很有可能出现hash冲突, 但是如果维护一个最大值, 然后暴力修改, 然后ha...

2020-11-04 11:03:00 142

原创 Educational Codeforces Round 97 (Rated for Div. 2)

E. Make It Increasing Educational Codeforces Round 97 (Rated for Div. 2)题目连接题解:因为b[i]的值是确定,所以知道操作 b[i] 到b[i - 1]的区间, 当 \(a[i] - a[j] < i - j (i > j)\) 那么可以证明一定无法构成, 所以先判断是否可以构造,如果都满足, 那么...

2020-10-29 00:25:00 52

原创 2020 计蒜之道 线上决赛

2020 计蒜之道 线上决赛C. 攀登山峰题目连接题解: 这题我比赛的时候想着如果用莫队解决这题, 想了 很久都是 \(o(n ^ {1.5} * log(n))\) 的算法, 就是优化不了log后来看了题解才知道直接用主席树, 模板主席不是可以记录区间的数的总个数嘛, 就所有总共数大于(r - l + 1) / t的都找一般最后在取一个最大值就好了。那么问题来这样复杂度可以...

2020-10-26 20:34:00 88

原创 kuangbin 莫队专题

kuangbin 莫队专题这几天把框斌的莫队都刷完了, 还是有不少收获的, 之前不会证明莫对的时间复杂度, 现在也能口胡证明了。莫队和其它数据结构不一样,会了之后就很简单。只要是关于区间o(1)算出贡献都能用莫队解决。具体看下面的题目吧!Sona题解:求区间每个数出现的次数的立方和题解:刚学莫队的时候肯定知道求区间不同颜色的个数, 但是如何求不同颜色的个数的立方和了。这里有...

2020-10-22 10:28:00 161

原创 Codeforces Round #677 (Div. 3)

Codeforces Round #677 (Div. 3)F. Zero Remainder Sum直接dfs枚举所有情况, 然后在加个记忆化#include<bits/stdc++.h>using namespace std;typedef long long ll;int dp[80][80][70][80];int mp[100][100], k,...

2020-10-21 10:21:00 63

原创 Codeforces Round #674 (Div. 3)

Codeforces Round #674 (Div. 3)F. Number of Subsequences题意:给你一个字符串只有abc和?其中?可以换成abc问有多少个abc子串。题解:直接枚举b用\(lsum[i]\)表示前i个字符中 a 的个数,$ rsum[i]$表示第i个数到第n个中c字符的个数那么每次枚举个b 答案就加上 \(lsum[i] * rsum[i]...

2020-09-28 23:06:00 53

原创 ACL Beginner Contest

ACL Beginner ContestD - Flat Subsequence题意:给你n个数, 让你选择一个最长的子序列a 且 a[i + 1] - a[i]的绝对值小于等于k问最长的子序列长度为多少?题解:如果写成dp复杂度为\(n^2\)那肯定过不了的, 如果把dp方程写出来for (int i = 1; i <= n; i++) { for (int j =...

2020-09-27 10:17:00 64

原创 P3792 由乃与大母神原型和偶像崇拜

P3792 由乃与大母神原型和偶像崇拜题意: 给你n个数, q次询问, 每次询问 有1 x, y 表示将x的值改成y2 l,r 询问区间l 到r 从小到达排序后是否连续。题解:如果这题不带修改,很多人都会想到,直接用主席树维护一个最大值最小值, 然后查询区间不同数的个数, 如果不同数的个数等于maxn - minn + 1 那么这个区间一定合法。主席树比较麻烦?那就...

2020-09-26 00:15:00 97

原创 Codeforces Round #672 (Div. 2) C2. Pokémon Army (hard version) D. Rescue Nibel!

Codeforces Round #672 (Div. 2)C2. Pokémon Army (hard version)题意:给你一个a数组让你找到一个子数组b求 b[1] - b[2] + b[3] - b[4]……的最大值并且有q次询问每次询问一个l和r表示将a数组的a[l],与a[r]交换, 每次询问都让你求一次最大值。题解:如果你c1是用dp写的话, 这题就不好写了。...

2020-09-26 00:02:00 109 1

原创 P1712 [NOI2016]区间

P1712 [NOI2016]区间题意:给你n个线段让你找出\(m\)个线段且这个\(m\)个线段都有一个公共点\(x\),对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。问合法选取的方案花费最小是?题解:由于数据太大,首先肯定能想到离散化。想到离散化就会想到线段树去维护区间信息,对与区间(l, r)就在线段是将区间(l, r)的信息加1就行了。...

2020-09-21 18:41:00 73

原创 2020 计蒜之道 预赛 第三场 C. 石子游戏(中等)

石子游戏(中等)题意:给你n个石子每个石子都有自己的质量和价值, 在给你q次询问每次询问一个区间,问在这个区间里 所有选的石子异或和为j的的价值最大是多少?题解:这题和简单版本的唯一不同是n变成了1e6先来说一下官方的题解的解法:用线段树维护,每个区间维护\(f[j]\)表示该区间中异或和为\(j\)时的最大价值。查询的时候每次合并是 \(m^2\) 最后的复杂度为 \(q...

2020-09-21 18:26:00 72

原创 P4198 楼房重建

P4198 楼房重建题意:给你n个点每个点都有一座楼房,小明站在(0,0)点位置看楼房,如果这栋楼房上任何一个高度大于 0 的点与 (0,0)的连线没有与之前的线段相交,那么这栋楼房就被认为是可见的现在你有q次操作, 每次可以改变任意楼房的高度。问每次改变时小明最多能看多少楼房?题解:这题不难想到小明最多可以看都楼房和斜率有关, 也就是从第一栋楼开始 斜率一直递增的小明都能看得...

2020-09-17 13:05:00 105

原创 Codeforces Round #669 (Div. 2) D. Discrete Centrifugal Jumps

D. Discrete Centrifugal Jumpsbu6题意:给你1到n的高楼, 现在你在1的位置你可每次从 i 到 i + 1, 或者跳到 i < j 且 \(max(h[i], h[j]) < min(h[i + 1] ...,h[j - 1])\)或者跳 i < j 且 \(min(h[i], h[j]) > max(h[i + 1], ......

2020-09-09 12:54:00 75

原创 hdu 6836

hdu 6836题解:给你一张图求所有生成树的&的期望。题解:由于求的是 & 那么可以考虑 枚举二进制如果答案的二进制中第 i 位 为1, 那么所选的边 所有权值的第i位都为1所有可以把答案拆成 二进制的和那么就可枚举每个二进制。将第i为二进制为1的边组成的生成树设为 \(cnti\)总共的生成树为 \(total\) 那么期望就是 \(cnti* 2^...

2020-08-07 01:17:00 107

原创 2019 树形—DP

2019 树形—DP题意:给你一颗树,然你寻找 多少对(u, v) (u > v)的路径数 是2019的倍数。题解:树形dp入门专题设 $dp[u][i] $ 以u为节点的子树中, 以u为起点 所有 路径之和 % 2019 等于i的个数。那么答案的贡献有两种以\(i为节点的子树 1 \le i \le n, dp[i][0]\)经过i节点 且属于 以i节点为根节点...

2020-08-07 00:26:00 51

空空如也

空空如也

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

TA关注的人

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