自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Huffman树浅谈

前言一般的Huffman树就是为了解决一些简单的Huffman编码而产生的。都记得套路就是贪心选最小点。但作为一个重要的算法,其意义远远不是这些。正文简单贪心的证明还是很有必要的。 显然,这棵树的最小权值就是每个叶子节点的权值乘上深度,记作deep×valdeep×valdeep \times val. 对于这样一棵树,当他呈现出他的最小权值形态时,最深的那个点一定是权值最小的。又...

2018-09-17 16:01:18 298

原创 [agc023E]Inversions【题解】【考试】

前言一次考试的中档题题面戳(直接弄了个vjudge)sol这道题一开始我求逆序对先是想枚举一个点,然后在去log的查询他前面的比他大的点的合法情况,虽然这是这道题最后的解法,但是未免有些冲动,因为还有很多细节与铺垫的东西没有考虑而直接跳到了最后一步。 但实际上,这也并不是没有指示作用。接下来,就会以这个想法为指引 这道题一个绕不过去的最基本的、现实的问题就是无论怎样...

2018-09-11 23:09:27 453

原创 cataclysm【题解】【考试】

前言是CF上一道题,被用来当做考题了题面描述现在砰砰博士检测到通道中有 n 个虫洞,每个虫洞无论成功与否只能传送一人,并且这个时空通道 只能进入 n 人; 每个虫洞有一个特征值,特征值在 [1, m] 之间,只有特征值和虫洞相同的人才能被成功传送; 但由于虫洞的不稳定性,每个虫洞的特征值是无法预知的,具体来说,对于第 i 个虫洞,其特征值 为 j 的概率是 p i,j ; n...

2018-09-08 15:58:19 280

原创 小Y和地铁【题解】【考试】

前言被搞成了考题 其实很简单,但是一定要加最优化剪枝要不然死都过不了题面戳sol是一个搜索 然后就会发现有很多种情况。大概不知道有多少种。 如果让你每一个个去枚举,就不会是道黑题。 那就潜心研究,发现,连完一个地铁后,把这根直线分成了两个集合,一个是你这条线围住的,一个是你这条线没有围住的。围住的叫0集合,没有围住的叫做1集合。 如果有一条路线两个端点一个在0集合一个...

2018-09-08 10:26:48 372

原创 shot【题解】【考试】

前言CF上的被搞成了考题题面一座墙,有n+2层。每一分钟墙的左边与右边都有a/b的概率被炸掉一块砖。每一层有m块砖。第一层和第n+2层是底和顶不能被炸。 现在求T分钟后墙还没有倒的概率 答案对1e9+7取膜 n,m<1500,t<1e7sol解这个题要用到一些ΣΣ\Sigma。 这个题一看就知道层与层之间独立,每一层打掉成什么样很好求。 比如说打成了[l,...

2018-09-06 17:46:33 225

原创 Message 【题解】【考试】

前言为了降为Noip难度,好心出题人悄悄把数据改成了随机,这样树高就是log题面给定一棵树与他的根,根标号是0,有n+1个点。 现有一些信息在树上传递,每一个信息在树上两个节点传递的时间都是1s。 现每一个节点除了根有两种状态。普通状态:可以上传信息,下传信息。懵逼状态只能下传信息。一开始所有点都是普通状态,当一个点上传信息后变为懵逼状态,当一个点接受了下传的信息后变...

2018-09-04 21:58:49 314

原创 数列gcd【题解】

前言BZOJ权限题题面对于一个长度为n的满足<1<ai<m<1<ai<md∈[1,m]d∈[1,m]d\in[1,m]sol解法与n的大小没有关系。 直接规定一下gcd,然后通过简单的组合数学搞出来,然后再用容斥减一下code#include<bits/stdc++.h>using namespace std;...

2018-08-27 20:35:10 416

原创 temperature【题解】

前言考场题看错了看错版本题面给你若干个区间,选择尽可能多的区间,使得在这些区间内,每一个区间存在一个数,这一些数单调不降。sol用一个简单的dp就行了。 离散化后dp[i]表示以选择i结尾的最多的选择的区间数量。 显然,设当前枚举到的为[l,r][l,r][l,r]有 1. dp[l]=maxi<li=1(dp[l],dp[i]+1)dp[l]=ma...

2018-08-26 08:14:38 379

原创 航空路线【题解】

前言一道既可以dp又可以网络流的题题面戳SOLdp做法首先为了保存状态,最容易想到的就是状态压缩,但是数据范围不允许我们压缩,所以就要换思路。最简单的,就会想到,我们并不关心状态是什么,而关心的是状态是否合法。我们只要让当前这个dp是合法的,他的转移是合法的,他的转移又不会影响到他已经合法的状态,那么这样就可以了。 那么dp就要表示出来合法的是哪一段。 我们又发现,状态...

2018-08-22 17:03:48 430

原创 魔术球问题【题解】

前言具体的数学关系还是不会证,除了能打表发现球数规律外,内在原理也弄不清楚。题面戳sol很难想象是一道网络流。第一感是数学。 但是看到数据范围比较小,估计可以暴力dp。 又发现,状态转移比较难,状态调整比较多,dp估计难设,又看到数据范围又小于dp通常可做范围,所以用同样以规划和状态设计为关键字的,状态调整能力更强的,复杂度可能略高的网络流来做。 实际上,这种题考...

2018-08-20 16:49:41 733

原创 最小路径覆盖【题解】

前言搞了几天网络流,总算会做题了题面戳sol显然,如果是个dp,那么转移就是到某一个点的状态转移给下一个点。 但是下一个点不能被选,也就是一个点被选的状态加上与其有连边的点没有选的状态转移给这一个点被选的状态。 然后发现,这个dp显然很难设出状态与变量意义,但换成网络流很好设。 但是网络流只能求最大流,没有最小。这道题是最小路径覆盖,所以要把最小转换成最大。我们发现,在最...

2018-08-19 21:47:20 369

原创 太空飞行计划【题解】网络流

前言蒟蒻初涉及图论,不会做sol这道题,一个显然的建图是用S向每一个实验连一条流量为赞助费的边,相当于是你做了这个实验给你的报酬。 又一个显然的连边是把实验连向仪器,作为该实验的一个开支,该实验对成本的获得。这一个流量显然是INF,因为你肯定是要把你得到的报酬都尽可能去先把实验仪器买齐,所以肯定没有用经费限制。 仪器显然有的出边是仪器的成本,当这条边的残量为0时,证明这个仪器买...

2018-08-19 15:10:53 254

原创 八省联考林克卡特树【题解】

前言为了练习凸优化而做的sol我们发现,按照流程,先减去k条边,就会剩下k+1个联通块,然后再用k条边把这k+1个联通块连起来,这就是它构树的全过程. 我们发现,在重连k条边时,当前最长的路径已经出来了,就是每一个联通块内选一条最长的路径,然后把他们首尾相连。然后,恭喜获得暴力分,暴力就是暴力枚举减去哪k条边,然后求剩下的联通块每一条最长路径的和.注意到这里一个点算一个路径长为0的路...

2018-08-15 17:04:55 279

原创 HNOI2015实验比较【题解】

前言记得几个月前自己曾经做过一道关于一张DAG求排列的问题,现如今遇到了的是一道关于树求排列的问题. 这一个问题看似简单实际上有一个细节那就是他可以取=。 这就使得复杂度升高了.sol首先,最简单的插孔原理。这一个非常简单,做这道题时,蒟蒻我现推式子。 为什么要解决这个问题呢,因为最基本的,在不考虑等于的情况下,n个数插入m个数的空隙中就相当于题目中的把两组不等式合起来. ...

2018-08-15 10:28:26 245

原创 ZJOI旅行者【题解】

前言为什么分治? 首先是一个同学的ppt里有这个题,那里面有一句话——可以离线.这就说明八成是一个分治。 然后这种问题,如果询问少肯定还会考虑一下dp。然后一个显然的性质是每次都会经过他们两中间的那条轴线.一个基于此而又看似暴力的做法就诞生了sol一个比较暴力易想的办法是,如果对于一个点,知道它到所有的点的最短路,那么这个点如果是某两点的必经之路,那么显然他到这两点的最短路之和就是...

2018-08-13 16:22:49 379

原创 开店【题解】

前言这道题居然调了我一晚上,原因如下: 1. 题解错误,所以对拍老是出错 2. 建边的数组太多了。有一个忘记*2题面戳sol不知道大家有没有想用点分治写但又不会STL的vector。这里,只要使用一下指针就可以了。首先开一个N*150的空间,对于每一个点都开一个指针,最后根据每一个点的大小用指针动态分配一段空间就行了。 解法其实自然。动态点分治难点就在于建立own和t...

2018-08-13 08:28:50 230

原创 另类动态空间的实现

前言动态空间的实现可以使用vector,但如果不会用,或者不熟练,或者不准用,或者常数大,可以使用指针做法首先一般是要开很多数组,并且知道ΣΣ\Sigma不大,但每一个的最坏情况乘上n太大,又在具体情况下知道每一个的大小,这是,可以给全局开一个ΣΣ\Sigma那么大的空间,然后开n个指针,到时候具体情况再用指针去指向一个空间,这样就行了来源最早会这么干是在学习长链剖分时学到...

2018-08-12 20:32:43 848

原创 接水果【题解】

前言虽然是NOI-/NOI/CTSC,但感觉还没有平时考试难,可能是这种题太套路了.题面给了你一棵树,给了你一些路径,每次询问,u,v两点间的第k小的子路径(必须是给出的那些路径中的)sol怎么判某条路径是某条路径的子路径? 一个套路就是用dfs序的区间包含关系.这个套路大概自己推理一下就出来了. 然后发现限制条件是一个二维的,所以这个区间不是一个线段,而是一个矩形...

2018-08-12 20:23:58 403

原创 货币兑换【题解】

题面戳。 大意:一开始你只有一些钱.你可以用你的所有的钱去买a、b两种东西.你也可以用所有的a、b两种东西去换成钱.所以在一种情况下,你的手里只有钱或者a、b两种东西. 每一天a,b都有自己的价值,买入a,b时,都有一个固定的比值.也就是说,一定量的钱在某一天就对应了一定量的东西. 每一天的操作不限次数.sol如果你知道这是一道斜率优化dp,那么就很简单了. 列出式子发现,...

2018-08-08 17:23:28 840

原创 写给自己,区间k个不同数的查询

前言今天考场上忘了,只记得使用主席树.所以特意来补一篇.静态不带修改,进行查询. 如果只是单纯的对每一个位置建一颗主席树,在查询时进行减法的话,显然无法做到直接出结果。为此,我们可以在任意一棵主席树上规定[l,r]的值是这一段区间内有多少种不同的颜色。如果l<pos1<pos2<rl<pos1<pos2<rlpos1,pos2pos1,pos2...

2018-08-06 22:04:39 295

转载 快读快写

前言转载自洛谷-黄浩翔大佬的博客内容黑科技,稳定、高效率且全面+疯狂常数优化的模板。DevCpp5.11+Samsung Windows7环境下评测,(编译后运行)读入并输出1802KB字符,本模板耗时1.27ms,getchar和putchar耗时1524.67ms,cincout和scanfprintf直接崩溃。首先模板献上: (注意:为避免错误使用,使用前一定要查看...

2018-08-06 19:21:22 1068 2

原创 洛谷比赛T2萨塔尼亚的一生之敌(sataniya)

前言题目难懂题面戳 有点难懂sol四十分相当好拿。 暴力n^2枚举两两之间有没有边。 然后考虑优化到100. 注意到复杂度的瓶颈在于有许多无效枚举。也就是说枚举到了两个点没有边但已经在一个集合里. 有注意到复杂度可优化地方在于与自己没有边的太多,与自己有边的太少。所以换一个方法枚举code// luogu-judger-enable-o2#include&l...

2018-08-06 17:35:19 427

原创 稻草人【题解】

前言网上代码各种各样的都可以AC,但关于判断横(纵)坐标相同是否构成矩形这一点各有不同。实际上,题目数据没有横坐标标或者纵坐标相同的情况,所以放心AC。solCDQ分治都看得出来。反正按纵坐标分为上下两层,然后考虑上对下的贡献。由于不能跨点,研究一个性质放在单调队列里就行了。 比普通分治还是多一个思维.提高组T1难度吧code#include<bits/stdc++.h...

2018-08-05 21:47:02 351

原创 Mokia【题解】

前言刚开始开心的二维树状数组(真裸),后面发现他在故意卡树状数组(W有200w)离散化都不行. 所以~~开心~~CDQ。题面戳一下就好了。吐槽特意上网搜了一下mokia,发现是盗版nokia。这年头,洛基亚还有盗版,盗版比正版还火,都用来出题solCDQ除了能用来解决N维偏序以外,好像就没什么了,所以转换成三位偏序就好了。 具体来说就是,对于加人这种操作,记一下加的...

2018-08-05 07:38:22 266

原创 动态逆序对1

前言容易写挂(对于新手与蒟蒻)题面洛谷;solCDQ 如果按照三维偏序那样求,那么会漏掉一些情况。所以要跑两遍cdq。 两遍CDQ又会有一个问题,就是判等于的问题。第一遍CDQ第三维判等于,第二遍判不等于.code#include<bits/stdc++.h>#define LL long longusing namespace std;inl...

2018-08-04 16:09:50 213

原创 三维偏序

前言怕自己忘,给自己留一个板子 以下代码均为洛谷【模板】三维偏序代码树套树先排序。 第一层树是一个树状数组。 第二层是一个线段树。 排完序后,枚举i,查询b小于自己的数所建的树,这一层通过树状数组快速枚举。 在线段树内二分找c小于自己的数.code#include<bits/stdc++.h>using namespace std;inline...

2018-08-03 22:03:52 521

原创 BZOJ震波

前言跟烁烁的游戏一模一样代码#include<bits/stdc++.h>#define LL long longusing namespace std;const int _ = 1e5+1e2;const int INF = 2e9;namespace zjy_io{ inline char gc(){ static char buf[...

2018-08-03 17:03:44 351

原创 BZOJ4372烁烁的游戏【题解】(不定长树状数组)

前言这一道题做了我两天,考试时都在做,搞得我爆零了,原因下面会提到.题面原题描述已经很简洁,故您只需戳. 原题数据从时间上看很水,从空间上看有点卡。sol如果说告诉你这是一道点分治,思路实在不难。根据询问,每次只需要一层层的找那些能囊括自己的点。现在包含自己的等级最小的子树,然后更高级的子树。每一次通过子树的根寻找与自己不在同一子树的点。修改也很简单。 中心思路 把一次一...

2018-08-03 15:49:56 321

原创 洛谷 小清新数据结构题

前言标算点分治,蒟蒻树链剖分。题面原题可以戳。由于表达能力过弱,所以自己不再复述题面。sol可能有一大堆ΣΣ\Sigma 。。 然而我并不会那么数学的符号。。。 所以全凭脑算。 在不考虑换根与修改的情况下,只要理解了题意,求解就是dfs。但由于发现修改是一个点一个点修改的,所以每次要针对一个点的修改来算出与修改前的贡献差。所以说要针对出一个点来算贡献。如果我们是按一个一个...

2018-08-02 17:29:13 274

原创 QTREE5 - Query on a tree V【题解】

前言动点分。难度属于套路难度,只要掌握了模板,就会做。所以没有详细说明。题面戳;sol提醒的是,该题不需要建立tofa堆代码#include<bits/stdc++.h>using namespace std;const int _ = 1e5+1e3,INF = 2e9;inline char gc(){ static char buf[...

2018-08-02 10:12:16 379

原创 [ZJOI2007]捉迷藏

前言又是一道动点分 真是越来越套路题面详细题面请戳 概要 : 一棵树,一开始,所有点都为白色,若干次修改。每一次选择一个点,改变其颜色(白变黑,黑变白)。若干次询问,每一次问最远的两个白点的距离。sol这道题据说有两种解法,点分治与括号序列点分治解法自然,易于理解 首先一点就是,如何用STL优先队列删除某一个指定元素。 一般会在迪杰斯特拉求最短路中用到。这...

2018-08-01 22:45:01 435

原创 ZJOI幻想乡战略游戏【题解】

前言动点分思维难度还是高些,不像点分那样板(这也是为为什么写题解的原因)。但其实也不难,像我这种动点分学都没学只知道要建点分树的蒟蒻都可以 大力 yy一波(为了研究各种性质捣鼓一个晚上)题面题面就不粘了,搞个链接戳sol分治树就是一个数据结构。大部分优秀的数据结构都是带log的,这是因为利用了化小子问题或是利用线性来作为原理支撑。 数据结构的优秀是建立在修改与查询几乎相等或者...

2018-07-31 19:01:40 239

原创 HDU 5977 Garden of Eden【伊甸园】

前言时间紧,就只写最关键的高维前缀和部分介绍其实我一开始也不知道这样一个东西,但我也做出来了,自己yy 把他想成一个dp,毕竟前缀和本身就是最短的dp. dp有一个思想就是我们一定要充分的假设dp[i][j]是未知的,但推出这个状态的式子是已知的,尽管你觉得这样一个推出这个状态的式子本身不可求。 很简单的,就是要求dp[(1010...)2]dp[(1010...)2]dp[(1...

2018-07-29 07:49:44 365

原创 树上暴力 之 树上启发式合并

前言只是一个神奇的暴力。来源为了快速统计与合并子树信息,最简单的就是每个节点分配一个空间用来存状态。这样做空间开不下,暴力合并信息也一定是高复杂度。所以我们只能给全局开一个空间让他来存状态。每次获取子树信息再重新dfs子树就行了。这样空间优了,复杂度也优了。做法每次把儿子的信息给自己,如果全局只有一个空间来存状态(比如:桶),那么显然,转移是0,因为与儿子共用一个空间存状态。但...

2018-07-28 16:36:42 565 1

原创 【APIO2008】免费道路

前言看了同学的贪心博客来做此题,同学都说水。然而我把问题看错了。。。题目描述新亚(New Asia)王国有 N 个村庄,由 M 条道路连接。其中一些道路是鹅卵石路,而其它道路是水泥路。保持道路免费运行需要一大笔费用,并且看上去 王国不可能保持所有道路免费。为此亟待制定一个新的道路维护计划。国王已决定保持尽可能少的道路免费,但是两个不同的村庄之间都应该一条且仅由一条 且仅由一条免费道...

2018-07-23 07:58:48 398

原创 [HNOI2003]消防局的设立

前言原题戳这里题目描述2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,...

2018-07-21 18:41:03 425

原创 糖果传递题解

前言原题戳这里题目题目描述有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。输入输出格式输入格式:小朋友个数n 下面n行 ai输出格式:求使所有人获得均等糖果的最小代价。输入输出样例输入样例#1:4 0 1 0 -1 1 0 -1 0输出样例#1:4数...

2018-07-21 10:07:14 1422

原创 建筑抢修【题解】

题意描述小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。...

2018-07-20 21:02:29 274

原创 逆元浅析

单独的考逆元,现在已经不多了 但是掌握很有必要逆元是什么当题目中最终答案太大时,往往会要求我们模一个数。这样的题往往是dpdpdp、递推之类。所以我们要步步取模。但如果某一步中出现了除法,或者一道概率dpdpdp 要求答案取模,这时就要涉及到模意义下的除法。 例如:a/b%m.这时我们将式子变形得到 a×1bmodma×1bmodma \times \frac{1}{b} \mod m...

2018-07-15 13:36:43 335

原创 线性基浅谈

不知道最初是从哪个角度发现的蒟蒻我最初是从玄学的线性代数与向量思想开始学的,然后因为不会高斯消元转入另一种。其实对于线性基来说,只要搞懂一个关系式子:axorb=c,cxora=b,bxorc=a;axorb=c,cxora=b,bxorc=a;axorb=c,c xor a=b,bxorc=a; 也就是说,知二求一。那么将一堆数合成一个线性基,应用的也是这个道理;线性基长什么...

2018-06-19 20:20:50 402

空空如也

空空如也

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

TA关注的人

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