自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【总结】 2019的愿望与对一些算法的总结

转眼间,又是一年过去了。2019终于变成了历史,却仿佛还在昨天。与伙伴们在机房所经历的酸甜苦辣,也终于洗涤了我们的心。一切似乎都平静了,名次似乎都变得不那么重要,重要的是努力的过程,不是么?虽然有些天赋好的大佬在机房不停水沝淼㵘,仍然能获得一等奖,但他们,却失去了拼搏的快乐,终究会被淘汰。好久没写总结了,现在就在这里总结一下2018的收获与失败吧。2018,确实是收获非常大的一年。在2018...

2019-03-01 20:57:43 205 5

原创 本蒟蒻在编程时遇到的一个问题,希望大佬能够解答!

我在写程序时讲一个代码交了上去,结果是RE(Runtime Error),调了接近两个小时后,实在没法子,就将变量的顺序交换了一下,结果却AC(Accepted)了?这是为什么?我今天问老师的时候,老师也表示不知道?在网上查时,网上的解答也是云里雾里的,并没有具体的解释。难道是c++内置的错误?那我们NOIP考试时不知道怎么办?对于这种情况出现的问题,希望看到本篇博客的各位大佬们在留言区能...

2019-02-15 20:48:14 249 3

原创 【题解】洛谷 P2824 排序

假的题目传送门[https://www.luogu.com.cn/problem/P2824]题目描述:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9Seo1j8-1607157810430)(C:\Users\Stuedent\AppData\Roaming\Typora\typora-user-images\image-20201201210311044.png)]Solution乍一看这道题跟CF558E长得非常像,我们能否采用解决这道题的方法来解决这道题

2020-12-05 16:43:46 57

原创 【题解】Fox And Jumping

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GiKCKoVM-1607157569836)(C:\Users\Stuedent\AppData\Roaming\Typora\typora-user-images\image-20201031190305068.png)]根据某个(裴蜀)定理,有以下结论:​ ax+by=gcd(a,b),存在一组x,y使该式成立ax+by=gcd(a,b),存在

2020-12-05 16:39:58 53

原创 【题解】Special Segments of Permutation

题目传送门[https://www.luogu.com.cn/problem/CF1156E]题目描述:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yRMBnIjw-1607157537449)(C:\Users\Stuedent\AppData\Roaming\Typora\typora-user-images\image-20201130210314941.png)]这是一道询问区间个数的题目,我们自然而然地想到分治。仍然是两个部分:跨中点的贡献和不跨中点的贡

2020-12-05 16:39:25 50

原创 【题解】Clique Problem

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sid7dZtz-1607157503377)(C:\Users\Stuedent\AppData\Roaming\Typora\typora-user-images\image-20201103083203505.png)]Solution写这篇博客的主要原因还是这道题的模型转化还是挺常见也挺巧妙的。我们考虑这个等式:∣xi−xj∣≥wi+wj|x_i-x_j|≥w_i+w_j∣xi​−xj​∣≥wi​+wj​显然这个

2020-12-05 16:38:53 50

原创 【题解】CF739B Alyona and a tree

题目描述:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dM1R7HPn-1607157484643)(C:\Users\Stuedent\AppData\Roaming\Typora\typora-user-images\image-20201127211106195.png)]Solution一、O(n2)O(n^2)O(n2)暴力枚举每一个点,扫一遍她的子树,合法的点累加进答案。二、O(n2)O(n^2)O(n2)暴力我们换一个角度来打暴力考虑每一个点对

2020-12-05 16:38:19 47

原创 【题解】Tree Painting

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4T48Ds4J-1607157443676)(C:\Users\Stuedent\AppData\Roaming\Typora\typora-user-images\image-20201104103445848.png)]Solution我们先假定1号为根节点。首先我们设f[x]f[x]f[x]表示以xxx为根的子树的贡献。不难有:f[x]=siz[x]+∑y∈son(x)f[y]f[x]=siz[x]+\sum_{y

2020-12-05 16:37:48 98

原创 【算法详解】Huffman树学习笔记

Huffman树学习笔记HuffmanHuffmanHuffman树用于解决这一类问题:构造一个nnn个叶子节点的kkk叉树,其中第iii个叶子节点带有权值wiw_iwi​,要求最小化∑wi∗li\sum w_i*l_i∑wi​∗li​,其中lil_ili​表示第iii个叶子节点到根节点的距离。很显然的一个贪心做法:为了最小化∑wi∗li\sum w_i*l_i∑wi​∗li​,应该让权值大的叶子节点的深度尽量小。当k=2k=2k=2时,我们可以用如下方法构造二叉HuffmanHuffmanHuff

2020-12-05 16:37:06 28

原创 【题解】 洛谷 P5686 和积和

这道题大家应该都会O(n)O(n)O(n)的做法了,这里讲一下O(nlogn)O(nlogn)O(nlogn)的做法吧。首先这道题要我们求的是所有子区间的问题,我们自然而然的想到分治做法。对于不跨过中点的,我们递归处理。而重点就是讨论跨过重点的贡献。这里先把式子给化简一下。令suman=∑i=1na[i]suma_n=\sum_{i=1}^na[i]suman​=∑i=1n​a[i],sumbnsumb_nsumbn​同样我们需要求的:​ ∑i=1r∑j=ir(sumaj−suma

2020-12-03 15:23:21 285

原创 抱歉!博客停更通知

由于种种原因。本博客暂时停更。也是为了避嫌。万分抱歉!

2020-10-28 19:18:15 114 1

原创 退役·OI生涯回忆录

??退役了呀还会以马。再见。

2020-10-12 19:41:11 122

原创 写给退役前的最后一场初赛

这大概是退役前的最后一场初赛了吧。不管怎样。只求无悔吧。一定要过啊。加油加油啊。RP++。祝大家身体健康!

2020-10-10 20:57:41 67 2

原创 【题解 && 海量集训 && 并查集】 银河英雄传说

题目传送门题目描述:公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展。宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争。泰山压顶集团派宇宙舰队司令莱因哈特率领十万余艘战舰出征,气吞山河集团点名将杨威利组织麾下三万艘战舰迎敌。杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多,难免恣生骄气。在这次决战中,他将巴米...

2020-10-06 07:59:33 104

原创 【知识整理】初赛复习

一、基础知识简称NOIP:全国青少年信息学奥林匹克联赛NOIP:全国青少年信息学奥林匹克联赛NOIP:全国青少年信息学奥林匹克联赛NOI:全国青少年信息学奥林匹克竞赛NOI:全国青少年信息学奥林匹克竞赛NOI:全国青少年信息学奥林匹克竞赛CNCC:中国计算机大会CNCC:中国计算机大会CNCC:中国计算机大会CTSC:国际信息学奥林匹克中国队选拔赛CTSC:国际信息学奥林匹克中国队选拔赛CTSC:国际信息学奥林匹克中国队选拔赛CSP:计算机非专业级别的软件能力认证CSP:计算机非专业级别的软件能

2020-09-29 15:54:50 271 12

原创 【斜率优化】 仓库建设

题目描述:SolutionSolutionSolution一、n3dpn^3dpn3dp设dp[i]dp[i]dp[i]表示在第iii个点设立仓库的最小代价。可以通过枚举前一个设置仓库的地方进行转移:dp[i]=min{dp[j]+∑k=j+1i(xi−xk)∗pk}dp[i]=min\{dp[j]+\sum_{k=j+1}^i(x_i-x_k)*p_k\}dp[i]=min{dp[j]+k=j+1∑i​(xi​−xk​)∗pk​}...

2020-09-26 11:09:39 56

原创 【博弈论&&建模】 Candy Piles

题目描述:SolutionSolutionSolution我们形象的理解一下去糖果的过程是怎么样的。首先,我们将原本无序的糖果排序一下变成有序的序列,这样子能够较好的处理取出石子最多这一操作,如下://这里借用一下atcoder的官方图片,以助于理解然后我们模拟一下取糖果的效果。如果是取走石子最多的一堆,实际上相当于消除最左边的一列:如果是给每堆石子都取走一个,那么就是消除最下面的一行:因此,我们将这样的操作形象理解之后可以发现,这样的操作要么是消除最左边的一列要么是消除最底下的一

2020-09-26 08:50:49 976 2

原创 【容斥&&状压】 CF449D Jzzhu and Numbers

题目描述:首先我们考虑这么一个问题:求nnn个数中,任意jjj,使得a[j]&i=ia[j]\&i = ia[j]&i=i,有多少个数满足。设fif_ifi​表示与值为iii的数的个数,首先可以得出以下转移:fi=∑j∉ifi∣(1<<j)f_i=\sum_{j∉i}f_{i|(1<<j)}fi​=j∈/​i∑​fi∣(1<<j)​但是这样转移很显然会有重复。一般的转移式这样的: for (int i = Max; i >=

2020-09-21 11:05:23 131

原创 【题解 && dp】CF82D Two out of Three

题目传送门题目描述:SolutionSolutionSolution很容易发现一个性质:不管前面选取哪些人,一定会有一个人是剩下的不被选取的。因此我们设f[i][j]f[i][j]f[i][j]表示第iii次选取之后,剩下jjj时的最少能量。由于一次只能选择两个人,而每次前面只剩下一个人,所以选择第iii个人时,前三个人只能是(i∗2)(i*2)(i∗2),(i∗2+1)(i*2+1)(i∗2+1),(j)(j)(j),自己手玩很容易证明。因此我们就可以进行转移:因为一次选222个人,所

2020-09-18 16:32:40 237

原创 【边双 && 题解】 CF555E Case of Computer Network

题目传送门题目描述:Solution首先有一个很显然的结论:对于一个环内的点,一定是可以相互到达的。因此,我们进行拓展:在一个边双连通分量内的点一定是可以相互到达的,因为边双一定是一个环。于是就有了初步思路:将原图用边双进行缩点,从而得到一个树形结构。对于询问的两个点,如果他们在同一个边双中,那么一定可以到达,不用考虑。我们思考不在同一个边双里的情况,即树中的两个节点。如下图:我们发现,在树中,两个节点(x,y)(x,y)(x,y)想要相互到达,只有一种方案:x−>Lca−

2020-09-15 10:38:29 52

原创 【题解 && dp优化】 union

题目描述:Solution我们如果选了一段区间,那么这段区间一定需要包含至少kkk个数。我们设f[i]f[i]f[i]表示选到底i个数的最大权值。设maxx[i]=maxj=1i(f[j])maxx[i]=max_{j=1}^{i}(f[j])maxx[i]=maxj=1i​(f[j])然后再有一个前缀和数组sumsu msum如果不选第iii个数:f[i]=f[i−1];f[i]=f[i-1];f[i]=f[i−1];如果选第i个数,很容易得到以下的dp式子:f[i]=max(maxx

2020-09-14 21:29:45 50

原创 【题解 && 区间dp】 Coloring Brackets

题目传送门题目描述:Solution我们考虑一对括号能够产生的贡献。设dp[l][r][i][j]dp[l][r][i][j]dp[l][r][i][j]表示当前区间为[l,r][l,r][l,r],第lll个括号的颜色为iii,第rrr个括号的颜色为jjj的方案数。(i,j∈[0,1,2]i,j\in [0,1,2]i,j∈[0,1,2])我们设mat[i]mat[i]mat[i]表示第iii个括号匹配到的右括号的位置(其中第iii个括号为左括号),这里我们需要用一个栈去操作:接着对于问

2020-09-14 20:32:46 61

原创 【线段树 && 题解】 Queries

题目传送门题目描述:SolutionSolutionSolution由于数据范围中xxx的最大值也就100010001000,很容易让我们想到一些位的操作。然后题目中的单点修改、区间查询又让我们很自然的想到了线段树。所以,我们可以开十棵线段树,一次存储每一位的异或情况。在线段树中我们设置以下变量:v0:当前区间中异或和为0的子区间的个数v_0:当前区间中异或和为0的子区间的个数v0​:当前区间中异或和为0的子区间的个数v1:当前区间中异或和为1的子区间的个数v_1:当前区间中异或和为1的

2020-09-13 20:23:20 69

原创 【题解 && 图论建模】 航空管制

题目传送门题目描述:Solution看到第一个限制,我们就能想到连边。但是,我们如果建正图,很显然对于多个关系会难以处理。因此,我们考虑建反图。如果一个序列是好的,那么必然满足逆拓扑序。我们用堆来维护当前的拓扑序。如果当前点的最晚限制是k[i]k[i]k[i],那么在当前这个点之前一定要有n−k[i]n-k[i]n−k[i]个点。用小根堆维护n−k[i]n-k[i]n−k[i],对于第一问我们不断做拓扑序即可。考虑第二问将问题转化,对于当前数xxx,它所在的位置下标最小,就是在反图

2020-08-24 21:12:56 92 1

原创 【题解 && 树上启发式合并】算法杂交详解 Lomsat gelral

前言1、什么是树上启发式合并?Dsu on tree(树上启发式合并) 用来解决这样一类问题:统计树上一个节点的子树中具有某种特征的节点数。 例如例题中的子树 x 中颜色为 c 的个数。2、如何实现?我们借鉴树链剖分的思想,先对树进行树链剖分,处理出重儿子、轻儿子等数组。而后我们就需要用这些数组对暴力进行优化(就是启发式合并!)对于常规的套路,我们枚举到每一颗子树时,用桶暴力查询,查询完之后再暴力撤销,但是这样的时间复杂度显然不够优秀。考虑优化。我们处理到一棵子树以后,优先遍历轻儿子,然

2020-08-18 20:58:20 193 6

原创 【题解 && 线段树优化DP】Pillars

题目传送门题目描述:Solution我们根据做最长子序列最长子序列最长子序列时的经验设dpdpdp状态:f[i]f[i]f[i]表示匹配了前i−1i-1i−1个数,且第iii个数必须匹配的最大长度很容易得到以下的转移式:f[i]=maxj=1i−1f[j]+1  (∣a[i]−a[j]∣>=d)f[i] = max_{j=1}^{i-1}f[j]+1\ \ (|a[i]-a[j]|>=d)f[i]=maxj=1i−1​f[j]+1  (∣a

2020-08-17 20:24:59 112

原创 【算法详解】 树链剖分

一、问题引入:1、给你一个序列,再给你一堆询问区间,对于每个询问区间,请你求区间内的最大值、累加和等等。对于这个问题,我们是早就做烂的了,线段树、树状数组等数据结构都能轻松求,这里不再详述。2、给你一棵树,再给你一堆询问,每次给你两个点,让你求两个点之间的路径中的点权最大值、点权和等等。对于这个问题,我们很显然不能再像问题111一样样直白的去做,因为树的路径与纯粹的区间不同。那我们能否用一个算法,将一棵树剖分成若干个区间(链),在用这些区间用111一样的方法去求的。是的,这个算法就叫做——树链

2020-08-16 19:50:23 88

原创 【题解 && 巧妙的判环】 Cities Excursions

题目传送门题目描述:Solution首先,很显然的是将问题离线处理,然后每个点做一遍遍历,解答以当前点为起点的问题。我的第一反应是直接遍历,若遇到环全部退掉,没遍历到的就是-1.但是后来一想,如果环退出之后当前点可能还能到达其他点,我这样的方法就会有漏洞。所以我们不得不换一个思路。我们考虑什么样的点是-1第一种,就是到达当前点的点数小于KKK,毫无疑问不行。第二种,就是当前遍历到了一个环,由环上的点遍历出去的点都是-1,因为永远也无法到达。所以这道题的麻烦之处就在于第二种的点的遍

2020-08-13 20:55:24 71 1

原创 【贪心 && 题解】 Buy One, Get One Free

题目描述:Solution首先,我们将问题转化:最少化花钱数=最大化免费显卡数最少化花钱数 = 最大化免费显卡数最少化花钱数=最大化免费显卡数于是,我们将问题转化为如何求最大化的显卡数。由于相同之间的显卡不能互相转换(意思能理解吧),所以我们需要将同价值的显卡存放在一起,并记录数量。即一个二元组(价值,数量)(价值,数量)(价值,数量)由于购买了一个显卡之后,我们可以获得价格小于他的任意显卡,所以我们需要将显卡从大到小排序一遍。对于我们免费获得的显卡,我们用一个小根堆来维护。我们考虑第i

2020-07-23 20:33:45 332 1

原创 【题解 && “反悔式”贪心】 种树

题目描述:Solution首先有一个最初的想法:将点权从大到小排序,选择前k大的点累加。但是很显然,这个算法是很容易找到反例的。所以,我们一旦选择一个点,就可以新加一个点替换当前点,当前的点权就是a[next[x]]+a[last[x]]−a[x]a[next[x]] + a[last[x]] - a[x]a[next[x]]+a[last[x]]−a[x],即相当于一次反悔操作,不要当前点,而要他左右两边的点。这个操作,可以用堆 + 链表维护。那么为什么对于一个点,要么他左右两个点不选,

2020-07-20 21:29:46 186

原创 【题解 && 状态压缩】 混乱的数字

题目描述:一天,抽屉从鲍勃那里得到了 n 个不同的牌子,每个牌子上都写了一个数字 ai(牌子上的数字可以相同)。高兴的抽屉把这些牌子排成一排,但他并不想牌子显得混乱。具体来说,若任意两个相邻的牌子上的数字相差超过 K,这些牌子就会显得很混乱。那么,有多少种不同的排列方案使得这些牌子显得混乱呢?两种方案不同且仅当某个牌子的摆放位置不同。Solution(由于太久没写状压的题了。。今天写一篇博客巩固一下。。)数据范围中n最多是16,而这个题目又是一个放数问题,就很显然是一个状压了。设f[S][i]f

2020-07-19 20:48:17 100

原创 【题解】Codechef WEASELTX

题目描述:给你一棵 n 个节点的有根树(节点),以及每个节点 i 的初始权值 a[i] 。一次操作则是指将每个节点的权值变为以其为根的子树中所有节点的权值之异或和。维护 q 个询问,每个询问则是问 T 次操作之后,根节点的权值。Solution我们先考虑一条链中节点深度为ddd的点对根节点产生的贡献。我们一个节点一个节点向上考虑,如下图:我们不难发现,这个序列其实就是一个杨辉三角的序列,于是可以用组合数得到深度为ddd的点在xxx天的贡献:Cd−1d−1+x−1\\C_{d-1}^{d-

2020-07-18 20:57:34 86

原创 致2019 第一届CSP ——考前总结与祈祷

明天就是世界上第一届CSP比赛了,时间是过得真的快啊。。去年的NOIP爆炸的事情仿佛还在眼前。。明天是一个全新的开始,不知道普及组和提高组一起打的压力我是否能承受住。。尽力而为吧,不负我就行。话说回来我最慌得还是犯傻逼错误啊。。不会做没关系,我的实力也就只有这样了呀。。...

2019-11-15 20:21:26 257

原创 集众人之力而来的注意事项

1.两个int相乘,50%几率会爆了int。(不开long long见祖宗)2.无向图邻接表的边表忘了2,这是心口永远的痛;3、 线段树数组开小不是4(乘4有时候不够)4、 调用多个函数不仅容易tle,还会mle5. 关于SPFA,它死了;6. 注意数组空间,(开了long long见祖宗)7. 永远不要把n和m打错.8. 多次查询记得清空数组9. S...

2019-11-15 10:58:56 117

原创 CSP 前夕——STL再度整理

一.vector1)定义: vector < int > a;其实就是一个不定长(动态)的数组,即你存多少元素他就占多少的存储空间2)具体操作:1.a.size():返回vector数组a的实际长度2.a.empty():返回vector数组a是否为空,若为空,则返回13.a.clear():清空a数组4.a.push_back(x):在a后面插入元素x,相当于数组的...

2019-11-14 13:59:35 247

原创 知识点的模板整理与复习

非图论:一、二分有关1):二分查找手敲模板:int find(int x){//假设从小到大排序,找第一个大于等于x的数 int l = 1 , r = n; while (l+1<r){ int mid = l+r >> 1; if (a[mid] == x) return mid;//如果找到,返回位置 if (a[mid] > x...

2019-11-13 15:55:17 510

原创 【算法详解】 二分图及其匹配

一、二分图基础什么是二分图?如果一个无向图可以分为两个不同的集合A,BA,BA,B, 使得集合A,BA,BA,B内部的点中没有边相连,只存在AAA集合中的点连向BBB集合中的点或者相反。这样的图成为无向图无向图上的基本术语/概念一、二分图的匹配:选取二分图中的边集SSS,当且仅当集合中的任意两条边都没有共同公共端点时,S为二分图的一个匹配二、匹配边/未匹配边:在集合S...

2019-11-06 21:14:02 139

原创 【树状数组 && 公式推导】 普转提七联测 A+B Problem

题目描述:给你一个n*n的矩形方格(横纵坐标都为0−(n−1)0-(n-1)0−(n−1)),一开始每个方格中的数都为 0 。你需要支持以下 两个操作:1.将给定的一个矩形中所有数+1。2.询问给定一个矩形内所有数之和对p取模。并强制在线。Solution首先我们可以推出一个式子暴力求出矩阵的和:∑i=1x∑j=1ya[i][j]然后我们用b[i][j]来做差分数组,由于差分数组...

2019-11-04 20:23:06 106 1

原创 【中位数 && 题解 && 蓝书刷题】糖果传递

题目描述:有nnn个小朋友坐成一圈,每人有a[i]a[i]a[i]个糖果。每人只能给左右两人传递糖果,传递一个糖果代价为1,求使所有人获得均等糖果的最小代价。Solution这道题所要求的是想让每个数都平均,所以我们得求出这堆数的平均数pjpjpj这道题对于每一个人而言有两个方向的状态,这个很麻烦其实我们可以把方向就看见一条,用正负性表示我们设s[i]s[i]s[i]表示第i个人给了...

2019-11-02 21:08:59 60

原创 【题解 && 总结】 普转提七联测 Day2

T1:有趣的数小强作为OI圈爸爸级别的人物,有一天随手AK的ZROI的J转S模拟赛。AK完了的小强闲得无聊,于是随手在纸上面写了几个看上去非常有规律的数字,555655,24444,7787,110。他觉得这些数字非常的有趣,并开心地拍起了手。于是小强定义一个有趣的数为:对于一个正整数,对于其所有的数位,当且仅当它恰好有一位与其他位不同,则称这个数为有趣的数。比如:555655,24444...

2019-11-02 18:04:35 247

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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