自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P3627 [APIO2009]抢掠计划

https://www.luogu.org/problemnew/show/P3627这也算是一个经典模型了。缩完点之后跑SPFA最长路即可。注意更新答案时要用含bar的SCC来更新答案。AC代码:#include<cstdio>#include<cstring>#include<iostream>#include<queue&gt...

2018-10-31 21:50:08 190

原创 P4306 [JSOI2010]连通数

https://www.luogu.org/problemnew/show/P4306Problem:给你一张个点条边的有向图,现定义点对表示连通关系:从点能直接或间接到达点,问你图中存在多少对这样的关系。关于原题的题意,需注意几点:1.因为题目给的是有向图,所以(存在从点到达点的路径,下同)并不一定代表(存在从点到达点的路径)。2.也算是一个合法的点对。明确这两点后我们就可以...

2018-10-31 21:47:29 225

原创 P1983 车站分级

https://www.luogu.org/problemnew/show/P1983因为题目中说了,每一条路径满足一点:经过但不停留的车站的等级一定小于这条路径所停留的车站的等级。所以我们可以根据这个确定如下关系:假设数组存车站等级,当前有一条路径,那么我们便可以确认。(特别注意:单凭这么一条路径你无法确认和之间的关系)。那么我们就根据这个关系连两条边和(写在前面的是起点,后面的是终点)...

2018-10-30 17:22:46 253

原创 P3258 [JLOI2014]松鼠的新家

还是一个点差分的板子题,唯一注意的就是最后的cnt要注意将cnt[a[i]]都-1即可。Code:#include<cstdio>#include<iostream>#define ri register intusing namespace std;const int MAXN=600020;int n,a[MAXN],m,u[MAXN],v[MAX...

2018-10-29 20:49:59 90

原创 P3128 [USACO15DEC]最大流Max Flow

树上差分(点差分)的模板题。

2018-10-29 20:48:21 116

原创 CF185A(Div 1 A) Plant

链接:https://www.luogu.org/problemnew/show/CF185AProblem:已知初始状态有1个正着放的正三角形(第0秒)。之后每一秒都会产生两个上一秒状态的正置的分型和一个倒置的分形。求在第秒时有多少个正置(正着放)的正三角形。()数学推一波:因为每一秒钟都会产生3个上一秒状态的分形,所以第秒共有个三角形。设为第秒时正置的正三角形的个数,那么在...

2018-10-29 16:07:27 228

原创 P4822 [BJWC2012]冻结

一个分层图板子题,但dp式略有不同。还是设为从经过条优惠边时的最短路。dp式:                                                    指所有终点为的边。但这个题还有一个限制:卡片只能在一条边作用一次。其实这个限制我们在代码中不用另外判断。由于边权为正,所以在一条边上使用多次肯定不如在多条边上使用一次更优。因为在一条边上使用多次卡片,总...

2018-10-28 20:35:53 164

原创 P4568 [JLOI2011]飞行路线

题意:给你一张无向图,现在你可以把图中至多条边的边权变为0.求此时的最短路。解法:最短路+DP(还有个更为熟知的标签叫做分层图emmm)设为从用了条免费边后的最短路,那么:                                                      由状态转移:此时边k被作为免费边使用。由状态转移:很显然这是一个最短路。其中指所有终点为的边的序...

2018-10-28 20:27:05 134

原创 P1342 请柬

题意:设为的最短路,为的最短路,求。数据范围:(SPFA在这个题已经去世了emmm)注:数据中的边均为单向边。反向建图的经典应用。显然,我们可以通过跑从1到其他点的最短路获得。那怎么求呢,总不能跑n遍Dijk吧。结论:的最短路等价于在原图的反向边建成的新图中的最短路。所以,我们先以1为源点跑一边Dijk,然后在新建的反图上以1为源点跑Dijk。把两者的dis数组相加即为答案...

2018-10-28 10:05:31 225

原创 P2323 [HNOI2006]公路修建问题

一道二分好题。https://www.luogu.org/problemnew/show/P2323单调性:花费最少的公路要求的费用越低,满足条件的一级&二级公路就越多。所以,我们二分花费最少的公路的费用即可。check函数:看在花费最少的公路的费用的限制下,满足条件的公路是否能凑出一棵生成树。我们用类似于kruskal算法的方法进行这个过程,不过有一个地方需要注意:优先选...

2018-10-26 13:50:02 252

原创 P3870 [TJOI2009]开关

码力不大,但需要注意标记下方的问题。题解传送门:Code:#include<cstdio>#include<iostream>#define ri register intusing namespace std;const int MAXN=100020;int n,q,k,zuo,you;int l[MAXN<<2],r[MAXN&...

2018-10-26 13:37:36 111

原创 二分答案经典例题(1) 整数域的二分答案

什么时候我们要二分答案?答:当答案具有单调性时(这不是废话吗emmm)来看一道最经典的例题:https://www.luogu.org/problemnew/show/P1182Problem1:对于给定的一个长度为的正整数数列,现要将其分成段,并要求每段连续,且每段和的最大值最小。数据范围:考虑二分答案:我们假设每段和的最大值为内的某个值,显然答案要求的。单调性:...

2018-10-26 13:35:13 1453

原创 P2590 [ZJOI2008]树的统计

操作:I. CHANGE u t : 把结点u的权值改为tII. QMAX u v: 询问从点u到点v的路径上的节点的最大权值III. QSUM u v: 询问从点u到点v的路径上的节点的权值和标签:树剖+线段树 模板题。转化一下题意:操作1:单点修改。操作2:利用树剖求LCA的过程求经过的点的权值的最大值。操作3:利用树剖求LCA的过程累加经过的点的权值之和。...

2018-10-26 13:23:09 90

原创 P1314 聪明的质监员

https://www.luogu.org/problemnew/show/P1314原题题意带来的坑:1.流程三的公式是可以写成这样的:换句话说:区间的的值=区间内满足的矿石的总个数区间内满足的矿石的价值之和2.题干说让你输出的是在最优情况下的下的绝对值。明确了这两个地方,我们开始分析它二分的单调性在哪里:单调性:当你选取的检验参数越大,满足的矿石显然越少,区间的检验值就...

2018-10-25 20:58:12 257

原创 P2921 [USACO08DEC]在农场万圣节

一道不错的记搜题。由于每一个人点的出度只能是1,所以我们不难发现:每一条在环上的边只能属于一条环。换句话说:任何一条边顶多属于一个环。这样我们就可以用简单的记搜来实现。设为从点开始最多能到达的点的总个数,那么显然,当在某个环中,=其他环上的点的f的值;当不在环中时,=从出发最先能到达的环中的点与的距离+。具体的实现细节见代码。Code:#include<cstdio&g...

2018-10-23 21:11:49 166

原创 P2296 寻找道路

反着建图,从点开始dfs,显然,只有在这个dfs过程中被经过的点才是与点连通(即能到达点) 的点。然后遍历每一个点的直接相邻的节点,看是否都与连通。若是,这个点才能被添加到路径中。最后用BFS/最短路算法求出最短路即可。代码:#include<cstdio>#include<iostream>#include<queue>#define ri r...

2018-10-23 21:01:31 191

原创 P1627 [CQOI2009]中位数

题意:给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。考虑60分做法:首先明确一点:合法的子序列的左端点必须∈[1,pla],右端点必须∈[pla,n]。那么暴力做法就出来了。枚举可能的合法的子序列左端点和右端点,然后对其排序,看排序后的序列是否合法即可。复杂度:考虑一个子序列什么时候才是合法...

2018-10-23 20:57:52 221

原创 P2146 [NOI2015]软件包管理器

很好的树剖板子题:操作一:求点x到0的最短路径 经过的结点个数-路径上已安装的软件包的总个数,同时将经过的路径上的所有点标记为已安装。操作二:将子树代表的那段存安装包个数的区间清空(或者是说将其sum值赋值为0)。此处为了实现标记已安装和清空,我们用了一个标记add:add[i]=1:线段树上的点i及其子区间全被赋值为len[];add[i]=2:线段树上的点i及其子区间全被赋...

2018-10-23 20:49:23 127

原创 树链剖分(2)树剖的较高级应用(P3384 【模板】树链剖分)

参照洛谷模板 P3384 【模板】树链剖分 题意:给你一棵包含n个结点的树,现要求你支持以下操作:1.x到y结点最短路径上所有节点的值都加上z;2.求树从x到y结点最短路径上所有节点的值之和;3.将以x为根节点的子树内所有节点值都加上z;4.求以x为根节点的子树内所有节点值之和。正确的思路是树链剖分套线段树。我们可以求一个dfs序(dfn[]),这个dfs序与之前求to...

2018-10-22 21:40:39 211

原创 树链剖分(1) 树剖求LCA

先看一个树剖的经典应用:初始化:先DFS一遍子树,统计出每一个点x的重儿子son[x]和以x为根节点的子树的大小siz[x],这里选择x中子树大小最大的儿子作为它的重儿子,第二遍dfs划分树链:重儿子与其父亲节点划分到一条链。其他的儿子为x的轻儿子,但属于新的链的顶端元素。void dfs1(int x,int father,int dep)//主要统计siz和son { fa[...

2018-10-22 17:24:00 256

原创 P1312 Mayan游戏

智慧搜索&智慧模拟的好题。核心:两个函数(消去函数,掉落函数)和一个最优性剪枝。具体细节见代码注释。Code:#include<cstdio>#include<iostream>#include<algorithm>#define ri register intusing namespace std;const int MA...

2018-10-14 11:37:51 164

原创 P3952 时间复杂度

不得不说多组数据一定注意清空变量这个问题。这题显然是个模拟,但有些东西不用栈维护的话很难搞。我的做法是开了一个栈sta,存当前所有未销毁的循环的变量,还有两个与sta同步的数组num与notin。num[i]表示sta[i]的变量所在的循环是第几层循环,notin[i]表示sta[i]的变量所在的循环是否会进入。此时每一个循环体的复杂度就是num数组中的最大值把F循环体看作为入栈操作,...

2018-10-14 11:31:22 233

空空如也

空空如也

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

TA关注的人

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