自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DyingShu的博客

我啊,只是想证明。这样的我,就算是这样的我,也有能够靠自己的双手争取到的东西。

  • 博客(63)
  • 收藏
  • 关注

原创 LuoguP2279 [HNOI2003]消防局的设立 贪心+BFS

传送门题目大意:给一棵树,每个消防局可以覆盖距离不超过2的点,求用最少的消防局把这棵树全部覆盖。我是用贪心做的。对于当前深度最深的点,如果它没有被消防局覆盖,则在其父亲的父亲处建一个消防局。为什么这样做是对的?因为这样可以保证这个消防局能覆盖到尽可能多的节点。对于当前还未覆盖到的最深的点来说,消防局只能建在自己,父亲,父亲的父亲或其相邻子树同一深度的点。画个图就可以知道,父亲的父亲覆盖的点最...

2018-11-08 19:01:24 252

原创 LuoguP3831 [SHOI2012]回家的路 分层图+最短路

传送门妥妥的分层图分横竖来建图,同一列的点(+起点终点)相邻之间连长度为距离*2的边,中转站分成两个点,互相连长度为1的边。注意起点和终点是可以既从横点开始也从竖点开始的,所以横竖点互相连长度为0的边就行了。#include<queue>#include<cstdio>#include<cstring>#include<algorithm&g...

2018-11-08 18:49:54 203

原创 NOIP2017 列队

传送门鸽了一年测试点1-6:二维数组模拟。测试点7-10:把所有询问到的行离散化。测试点11-16:发现所有事件x等于1,那么每次出队,入队只会对第一行和最后一列造成影响。相当于把最后一列压到第一行,这样就相当于维护一个序列,每次找出第x个元素并放在队尾。可以用线段树维护这个序列,每个节点维护的是当前区间长度,l=r时还存了这个人的编号,当出队的时候就找到第y个人,把这段区间长度设为0,再...

2018-11-06 21:49:37 539

原创 数位DP模板

数位DP问题,大多是统计数量,通常用按位处理的方法解决。具体为:询问[L,R][L,R][L,R]中满足某一条件的数。利用前缀和的思想,我们可以把问题简化,即转化为询问[1,R][1,R][1,R]和[1,L−1][1,L-1][1,L−1]。实现时,常常使用记忆化搜索,由于有很多限制条件,所以常常增加几维状态,即是否有前导零等标记。这里是博主@wust_wenhao的数位DP模板:typ...

2018-11-04 21:46:44 271

原创 HDU2089 不要62 数位DP

传送门

2018-11-03 21:55:53 219

原创 HNOI2011 XOR和路径 高斯消元+期望

传送门题目大意:给定一张无向连通图,每次有相等概率走一条边,求1号点到n号点异或和的期望值。这道题和NOI2005聪聪与可可很像,只不过…聪聪与可可那题猫一定会抓住老鼠,而这题有环,那么就不能用记忆化搜索了,因为每个点的状态都可以互相更新。但这些不断更新的状态最终的答案都会趋近于某一个值,而求得这个值的方法也就是高斯消元。通过解方程的思想,来得到那个值。题目求的是异或,而异或运算中各个二进...

2018-11-02 21:09:42 215

原创 高斯消元模板

高斯消元,实际上就是用加减消元法解n元一次方程组。百度百科上已经说的很清楚了,先把方程写成矩阵的形式,依次消去各个系数x,y,z...x,y,z...x,y,z...,可以得到一个上三角矩阵。这时已经可以直接读出最后一个方程的解了,再回代到上面的方程就行了。具体实现:1.消元对于xixixi,找到xixixi系数最大的一个方程,以减少精度误差。然后,把该方程的xixixi系数转化为1,带...

2018-11-02 16:17:28 141

原创 网络流模板

网络流,顾名思义,是求网络中的流量。这里的教程比较容易理解主要性质:容量限制 任何边的流量不能超过其流量。斜对称 显然,若一条边的流量为w,即从u->v流量为w,可以看作是从v->u流量为-w。流量守恒 网络中除原点,汇点以外,任何节点不储存流。这个也比较容易说明,因为如果某一时刻某个中间节点储存了流,则下一时刻它会储存更多。最后储存满了,这些满的流量不能流向汇点,就浪费了...

2018-10-28 20:01:32 352

原创 NOIP2016 天天爱跑步 LCA+差分+桶

传送门NOIP史上最难一题。。。部分分出正解系列测试点1-5:直接模拟即可测试点6-8:树退化成一条链。我们先从dep[S]<dep[T]dep[S]<dep[T]dep[S]<dep[T]的情况开始想。depdepdep表示该点到点1的距离。如果路径上有个点满足被观察到的条件,那么dep[i]−dep[S]=w[i]dep[i]-dep[S]=w[i]d...

2018-10-19 21:04:35 242

原创 NOI2005 聪聪与可可 期望DP+记忆化搜索

传送门一道期望DP。设dp[i][j]dp[i][j]dp[i][j]为i到j的期望距离,则有dp[i][j]=(dp[s[s[i][j]][j]][v]+1)/(size[j]+1)+1dp[i][j] = (dp[s[s[i][j]][j]][v]+1)/(size[j]+1)+1dp[i][j]=(dp[s[s[i][j]][j]][v]+1)/(size[j]+1)+1,其中size...

2018-10-11 19:44:06 269

原创 SHOI2007 园丁的烦恼 离散化+树状数组

传送门题目大意:多次询问矩阵和,无修改。n<=50000,m<=500000n<=50000,m<=500000n<=50000,m<=500000题解:这道题提供了一种全新的思路。我以前也常常遇到这种问题,因为数据太小而打了个二维树状数组就过去了。这次的范围比较大,所以要重新考虑算法。离散化是显然的,把矩形查询变为前缀和查...

2018-10-06 20:19:27 253

原创 ZJOI2012 旅游 树的直径+建图

传送门这题神了。。。题意:在凸多边形中,画一条两个不相邻顶点之间的线段,使经过的三角形个数最多。题解:对于两个有公共边的三角形,可以发现若有一条直线穿过某个三角形并从公共边出去,则一定会选中两个三角形(显然)。而如果直线穿过的是另外两条边,就会和另外两条边外面的三角形连在一起。所以朝着有公共边的两个三角形连一条边。不难发现建出来的图是一棵树,而直线是不能分叉的,所以问题就转化为求这棵树的...

2018-10-06 16:51:30 402

原创 树链剖分模板

啃了好久,终于把树链剖分给啃下来了前置知识:dfs序,lca,线段树等算法思想:把树拆成一条一条的链,然后用数据结构维护。首先定义几个概念:子树大小:以某一节点为根节点的子树中节点的总数,包括该点。重节点:在某一节点的所有子节点中,子树大小最大的节点。轻节点:不是重儿子的节点。特殊的,根节点是轻节点。重链:重节点依次相连形成的链。具体实现:以洛谷 3384 【模板】树链剖分 ...

2018-10-05 21:28:48 184

原创 CF938D Buy a Ticket 最短路 + 建图

传送门流行乐队“Flayer”将在n个城市开演唱会 这n个城市的人都想去听演唱会 每个城市的票价不同 于是这些人就想是否能去其他城市听演唱会更便宜(去要路费的)输入格式: 第一行包含两个整数n和m 接下来m行 每行三个数 u v k 表示u城市到v城市要k元 接下来n个数 表每个城市的票价题目显然是最短路。首先可以想到往返其实就是路径的两倍长度(最短路还是这条路径)跑多源最短路更新答案。我在...

2018-09-23 22:33:55 542

原创 CF869A The Artful Expedient 结论题+数论

传送门题目描述Tommy和Karen在玩一个游戏。他们各自准备了一个长度为n的数组,Tommy的数组称作a,Karen的数组称作b。保证这2n个数互不相同,设这2n个数构成的集合为S。现在他们想知道,有多少对(i,j)满足a[i] xor b[j]的结果在集合S中。当这个数为奇数的时候,Tommy获胜,否则Karen获胜。现在给你n和这两个数组,你需要告诉他们是谁赢了。输入第一行...

2018-09-23 21:34:23 282

原创 NOIP2010普及 三国游戏 贪心

传送门5min水了一道题。一句话题解:取对于每个武将第二大的匹配值的最大值就是答案。就是个很简单的贪心,加上是道水题,也不需要啥优化是吧#include<cstdio>#include<algorithm>using namespace std;int a[501][501];inline int read(){ int k = 0, f = 1; c...

2018-09-21 19:28:32 696

原创 BZOJ3990/SDOI2015 排序 搜索

传送门暴力出正解系列,直接开搜注意到操作顺序不影响答案,因此从小到大安排,最后统计答案时增加交换次数的阶乘就行了如果一种状态已经开始选择第iii种操作,那么必须保证所有长度为2i−12^{i - 1}2i−1的块(从第一位开始,每块首尾相接)内部已经排好序了。而如果有2个以上长度为2i2^{i}2i的内部没有排好序的块,就不能通过一次操作将其排好序。而在其之后的操作也不能把没有排好序的块复原...

2018-09-21 19:02:20 255

原创 BZOJ1202/HNOI2005 狡猾的商人 差分约束+最短路

传送门题目一看就是差分约束系统。。。不知道为什么有人会想到最短路我用了一种奇奇怪怪的做法:最短路。以天数为点,以花费来建图首先发现如果一个账本是正确无误的,则每条到该点的路径中,长度都应该是相等的。所以只要判断到每个点的最长路和最短路是否相等就行了于是看到数据范围,floyd过不了,直接一个多源SPFA23333不管了反正过了.jpg 不过应该有更好的做法的细节:因为题目给出条件时...

2018-09-21 18:01:11 273

原创 NOIP2017 宝藏 状压DP

借鉴了一下这位dalao的题解 NOIP2017的D2T2,状压DP。 看到n的范围很容易想到是状压DP,但是怎么转移就很有趣了设dp[i][S]dp[i][S]dp[i][S]表示最大深度为iii时,已开通的点状态为SSS时的最小花费。 每次转移时,枚举不在集合中且可以转移的点,枚举子集进行转移。 用dp[i][S]dp[i][S]dp[i][S]与S′S′S'中所有点的更新代价更新...

2018-09-14 18:58:16 292

原创 NOIP2013 华容道 BFS + SPFA

传送门初看这题时,觉得应该就是一个大爆搜,然后调了半天也没调出来 看了下题解才猛然醒悟…题解: 容易发现,移动方块就是移动空格。这样的话,整个地图中就只有空格及其旁边的块才能移动。因此,我们预处理出每一个块向四周移动的步数,即每个方块某个方向的空格移动到另一个方向的步数。用State[i][j][p1][p2]State[i][j][p1][p2]State[i][j][p1][p2]...

2018-09-14 18:22:08 148

原创 NOIP2017 逛公园 分层图+拓扑排序

就快把NOIP的题都做完了(事实上剩下的题都是最毒瘤的,比如天天爱跑步 正解暂时还不会写,在这里先贴一个分层图的题解(会被卡30分,Luogu上开O2才能过分层图: 由于k<=50k<=50kk+1k+1k+1个点,表示经过该点时,超出最短路长度jjj的情况。 首先,预处理1到所有点的最短路。 然后连边,如果当前点到另一个点多出来的总距离不超过1到那个点的最短距离+k 就连...

2018-09-12 20:20:42 748

原创 堆模板

一些堆的总结1.二叉堆 这个是最简单的堆,用于维护最大最小值。支持删除,弹出堆顶节点,查询最大值(或优先级最高的节点)#include<cstdio>#include<algorithm>using namespace std;const int MAXN = 1

2018-08-31 11:01:10 414

原创 NOIP2015 斗地主 搜索+贪心

传送门1——斗地主普通版 传送门2——斗地主增强版,慎入有点恶心,特别是增强版题解:大爆搜,搜索出顺子,贪心出散牌 据说加强版的标程都是贪心把除了顺子之外的散牌通过拆牌,贪心一次出完的。。而我太菜,只会出对子和单牌233 最后用几个奇奇怪怪的剪枝过了#include<cstdio>#include<algorithm>#define re regist...

2018-08-31 09:45:03 255

原创 HNOI2005 虚拟内存 线段树+Hash

传送门 题目大意:模拟一个内存系统。 题解:大力Hash+线段树。 Hash记录元素是否存在,线段树寻找访问次数最少的页码。 用指针板线段树卡了卡常,居然混到BZOJ的rank1了OvO#include<cstdio>#include<cstring>#include<algorithm>using namesp

2018-08-31 09:30:32 199

原创 NOIP2016 蚯蚓 队列+单调性优化

传送门努力刷完NOIP提高组题目ing… 50~60分算法:直接用堆/优先队列模拟 100分算法:观察题目,发现其中隐含的单调性。 设两条蚯蚓长度为a,ba,ba,b,其中a>ba>ba > b。 则aaa被切掉时长度分别为pa,(1−p)apa,(1−p)apa, (1 - p)a,过t秒之后长度为pa+tq,(1−p)a+tqpa+tq,(1−p)a+tqpa+tq, ...

2018-08-31 09:14:39 236

原创 SHOI2008 堵塞的交通 线段树

传送门这是一道让人误解为水题的线段树题。题意:维护2*n的网格区域中点的连通性。 题解:线段树维护连通性。把上下两个城市看作线段树中的一个点 合并两个区间时,只看这两个区间的左,右端点,更新合并区间的连通性。这个很好想,不过实现起来…嘿嘿嘿 记录横向的线段,用于合并时判断。由于修改都是单条路修改,记录起来也不太难。 总之就是要多画图,把两点连通性的所有情况给画出来。 可以...

2018-08-28 18:46:01 245

原创 CF474F Ant colony 线段树

传送门又TM水了一道线段树…题意:求区间GCD及等于这个GCD的数有多少个。输出区间长度-GCD数量 题解: 线段树维护区间GCD,再维护区间GCD数量。 显然当两个区间合并时,新区间的GCD等于左右区间GCD的GCD,而如果等于其中一个数,则数量就等于那个区间的GCD数量。 然后就完了。#include<cstdio>#include<algorithm&...

2018-08-27 19:47:00 298

原创 NOI2016 区间 线段树+离散化

传送门好久没水线段树题了。。。NOI2016的签到题,差不多就是个裸的线段树。 离散化,建树,维护最大值。 然后区间以长度排序,从小到大加入线段,若覆盖次数达到m就更新答案,同时删除最左边的区间,并更新答案(因为有些区间不覆盖那个已经覆盖m次的点),就完了。 好像某个最小差值生成树(雾#include<cstdio>#include<algorit

2018-08-26 21:29:30 401

原创 JLOI2014 松鼠的新家 LCA+树上差分

传送门题解:很简单,就是求树上点的差分。把从a[i]到a[i+1]的路径上的点覆盖一次,记录总覆盖次数 点的差分和边的差分略有不同,不过大体思路都是差不多的,边的差分是在起点,终点tag+1,LCA处-2;而点的差分是起点,终点tag+1,LCA及其父亲tag-1。为什么?模拟一下就行了 然后求个子树和.jpg 注意这道题起点和终点是连在一起的,所以除了第一条之外的所有起点都要tag-1...

2018-08-26 21:22:26 224

原创 NOIP2016 换教室 期望DP

传送门题解: 本蒟蒻第一次知道期望是啥意思。。很简单,就是全部概率*价值求和 感觉期望差不多都和DP有关吧 设dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]表示选到第i节课,已经申请了换j节课,其中第i节选/不选的期望。dp[i][j][0]={dp[i−1][j][0]+dis[c[i−1][c[i]]dp[i−1][j][1]+dis[c[i−1...

2018-08-26 20:19:00 216

原创 NOIP2011 观光公交 贪心+递推

传送门60%数据:也许能用DP 100%数据:k范围太大,不能DP题解: 想一想贪心。如果只有一个加速器,我们肯定选乘坐人数最多的那条路。 扩展到m个加速器的情况,只需要每次选取乘坐人数最多的路,使用加速器更新答案,就行了。 对于一个站,可以分成两种情况:车等人,人等车。若是人等车,则使用一个加速器,这个站及之后连续的所有的人等车的站,乘坐的人时间都会减一。而如果有一个车等...

2018-08-26 11:25:48 279

原创 NOIP2012 疫情控制 贪心+二分+倍增

1

2018-08-26 08:55:07 285

原创 ZJOI2006 皇帝的烦恼 二分+DP

传送门初看题目,感觉就是道水题,判一下奇偶性就行 考完了才知道,浙江的题嘿嘿 结果最后模拟赛只拿了20。。。题解: 二分答案,check的时候DP,设Max[i]Max[i]Max[i]为第i个人最多和第1个人勋章相同的个数,Min[i]Min[i]Min[i]为第i个人最少和第1个人勋章相同的个数 于是就有Max[i]=min(a[i],a[1]−Min[i−1])Max[...

2018-08-25 18:58:47 273

原创 HNOI2009 梦幻布丁 启发式合并+队列

传送门题意:N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。题解:启发式合并的神奇做法 把同种颜色的布丁排成一列,变色时接在那个颜色的队列后面;同时要把短的队列接在长的队列后面。 复杂度证明:由于每个操作中,合并短的队列和长的队列,合并后的队列至少有短的队列的2倍长 最多扩大lognlognlogn次,复杂度O(nlogn)O...

2018-08-25 18:49:31 248

原创 NOIP2011 Mayan游戏 搜索

传送门题解:爆搜+剪枝 要注意以下几点:向右搜时,若颜色一样则不搜向左搜时,若不是空格,则不搜(因为此时它左边的方块已经向右搜索过了)可以把搜索过程想象成一颗搜索树,这样只用开与这棵树的深度成正比的状态数组DFS时先考虑右移,因为右移优先度比左移高具体见代码吧~#include<cstdio>#include<algorithm&

2018-08-25 18:33:33 222

原创 NOIP2012 开车旅行 倍增

题意:两人轮流开车,求解一些问题(题目已经讲得很清楚了) 题解:首先预处理出每座城市的最近点和次近点(可以用双向链表做,排序后从左到右依次找,找了之后就删掉)然后预处理倍增,注意这时的城市已经是排序过后的了,可以转化成原来的排列进行操作也可以直接在新排列上进行。接下来模拟就好咯具体看代码,这次写的有点复杂其实是因为我不会指针再加上作死#include<cstdio&gt...

2018-08-23 22:46:21 266

原创 HNOI2009 有趣的数列 卡特兰数

传送门题意:题目已经说的很清楚了吧 题解:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAX = 2000001;const int MAXP

2018-08-23 16:05:14 232

原创 NOIP2014 解方程 数论+模拟

题目大意:求一个多项式方程在[1,m][1,m][1, m]的整数解。 题解:没想到吧,这题竟然是暴力(溜 好吧也没有那么简单 要用到一个算法:秦九韶算法,就是减少多项式的计算次数 然后暴力枚举[1,m][1,m][1, m]就行了 ? 不行,由于系数太大,我们还要取模。将原数分别模多个质数,如果答案都为0是就可以近似认为是答案了。这样的话在洛谷上可以AC,不过在BZOJ上会TLE。为什...

2018-08-22 22:36:06 208

原创 BSGS模板

BSGS即baby step, giant step,用于求解形如ax≡b(modp)ax≡b(modp)a^{x} ≡ b \pmod{p}的方程。 具体做法:设x=i∗t−jx=i∗t−jx = i * t - j,则方程变为ai∗t≡b∗aj(modp)ai∗t≡b∗aj(modp)a^{i * t} ≡ b * a ^ {j}\pmod{p}。先把每个b∗aj(modp)b∗aj(mod...

2018-08-20 21:30:24 282

原创 SDOI2013 随机数生成器 BSGS+数论

题解: 按照XnXnX_n的递推式,得到XnXnX_n的通项公式,移项后得到 an−1≡(Xn+b∗inv(a−1))∗inv(X1+b∗inv(a−1)) (mod p)an−1≡(Xn+b∗inv(a−1))∗inv(X1+b∗inv(a−1)) (mod&

2018-08-20 21:13:12 217

空空如也

空空如也

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

TA关注的人

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