自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iwi

  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 洛谷 3391 文艺平衡树 splay模板

题目:文艺平衡树  资料:yyb大佬的讲解zcy大佬的代码 思路:splay模板。要加两个虚点1、n+2,原序列是 [2,n+1]。一直在想为什么翻转不会破坏bst的性质,后来才发现这里的bst是对数的编号来说的,与值无关。寻找一段区间,只需要把它的前驱旋转到根,后继旋转到根的右儿子,此时根的右儿子的左子树就是这段区间。要用lazy tag优化。 ...

2018-03-28 13:22:29 320

原创 洛谷3958 noip2017 奶酪

题目:奶酪思路:并查集。注意:一定要开long long,考场上就是这里挂了两个点。代码:#include<bits/stdc++.h>using namespace std;#define ll long longstruct Hole{ ll x,y,z; Hole(){} Hole(ll xx,ll yy,ll zz){ x=xx...

2018-03-26 17:57:09 311

原创 noip2014 洛谷1351 联合权值

题目:联合权值思路:首先n个点n-1条边的联通图是一颗无根树。对于每两个距离为2的点,可以知道,它们一定和一个公共点有连边。枚举公共点i,再用O(n)的时间算出与这个点相连的点中权值最大的两个点,求出联合权值。最后求出这些联合权值的最大值。所有联合权值的和,就可以利用乘法分配律的思想。假设每一个和点i有关的联合权值的值为 x*i+y*i+z*i ,那么这个值也就是(x+y+z)*i,所以就可以利用...

2018-03-26 16:18:48 179 1

原创 洛谷3387 模板 缩点

题目:缩点 思路:tarjan缩点+最长路。 注意:1、用dijkstra求最长路时,优先队列中的<运算符要反过来。2、需要把所有入度为0的点为起点跑一遍最长路。3、每次求最长路时,dist数组不要重新初始化。4、缩点后的点权为缩点前的所有点权之和。5、最开始初始化dist[s]的值不为0,为点权。 代码:#include<bits/s...

2018-03-25 20:20:53 372

原创 tarjan求割点模板

题目:【模板】割点(割顶) 注意:1、第一个点要特判。2、一开始作死写了个判重边,把重边去掉了,WA了很久……后来才发现去了重边后悔少一些双联通分量 代码:#include<bits/stdc++.h>using namespace std;#define maxn 100000int n,m;vector<int> a[maxn+...

2018-03-24 20:03:11 343

原创 AC自动机模板 2

题目:AC自动机(加强版) 资料:yyb大佬的博客 注意:这个题为了防止tle,需要加上优化,即 if(!ch[u][i]) ch[u][i]=ch[fail[u]][i] 代码:#include<bits/stdc++.h>using namespace std;#define maxn 150#define maxd 70#define ma...

2018-03-24 15:34:05 122

原创 洛谷3435 POI2006 OKR-Periods of Words

题目:OKR-Periods of Words 思路:用kmp的做法先求出这个字符串的nxt[](最长相同前缀后缀)。假设有这样一个字符串,nxt=2,这个字符串的最大周期就是6,最小周期就是5: XX XX YY YY YY  XX XX |       最大周期=6      ||    最小周期=5   |  nxt=2 |从最小周期来看,我们可以看出最小周期...

2018-03-23 16:08:24 319

原创 模板 kmp字符串匹配

题目:KMP字符串匹配 资料:SYC大佬的博客  思路:nxt[i] :字符串0~i的最长相等的前缀后缀长减1,也就是最长相等前缀后缀中的前缀的结束位置。比如从i开始查找到j处时不匹配,nxt[j]=2,也就是说A段和B段完全相等,因为A是X串的前缀,那么B也是X串的前缀,可以直接从B段开始匹配:  i                     j  ↓       ...

2018-03-23 10:29:48 590

原创 【模板·权值线段树】洛谷1908 逆序对

题目:逆序对 参考:dalao的题解    <-这位大佬写的好清晰的orzdalao讲的权值线段树 思路:归并的题,但是可以用权值线段树做。 注意:权值线段树就是以权值为下标的线段树,由于权值可能很大,所以要先离散化。 代码:#include <bits/stdc++.h>using namespace std;#define ...

2018-03-20 22:01:35 451

原创 洛谷 3097 USACO13DEC 最优挤奶 Optimal Milking

题目:Optimal Milking思路:线段树的单点修改区间查询。每个节点维护4个值,及左右端点选或不选的最大和,用二进制存储,更新时分类讨论。注意:使用long long类型。代码:#include <cstdio>#include <iostream>#include <algorithm>#include <stack>#includ...

2018-03-20 11:00:48 291

原创 洛谷 1937 USACO10MAR 仓配置 Barn Allocation

题目:Barn Allocation思路:贪心+线段树。先把所有牛的序求按右端点从小到大,左端点从大到小排序。然后顺次的对于每一头牛,如果它的需求可以被满足,ans++,否则跳过。为什么这样是成立的呢?假设选到第i头牛时不成立,并且它和前一头牛时这样的位置关系:|    1    |   2    |  3  | XX XX XX XX          前面的牛            XX XX...

2018-03-19 11:06:14 272

原创 洛谷2846 USACO08NOV 光开关 Light Switching

题目:Light Switching思路:区间修改区间查询的线段树。代码:#include <cstdio>#include <iostream>#include <algorithm>#include <stack>#include <queue>#include <deque>#include <set&

2018-03-18 17:18:18 288

原创 洛谷2982 USACO10FEB 慢下来 Slowing down

题目:Slowing down思路:线段树。如果有一头牛回到了自己的牧场,那么还没有回牧场的所有牧场在它的子树中的牛,建树的次数就会加一。先对树dfs遍历,得到dfs序。设a[i]表示第i头牛需要减速的次数。一头牛i回到牧场,就先查询a[i],再把dfn[i]~low[i]的所有节点的值加一。这样问题就可以转化为线段树的区间修改单点查询了。代码:#include <cstdio>#i...

2018-03-18 16:34:40 204

原创 洛谷1198 JSOI2008 最大数

题目:最大数思路:线段树。最开始就建一个m个点的线段树,这样对数列增加的操作就变成线段树的单点修改了。注意:在L=0时,要输出0,所以不可以把线段树的值初始化成-inf。另外注意边界,不然会MLE。建议在BZOJ过了的也在LUOGU交一下,这题BZOJ的数据比较水一点。代码:#include<bits/stdc++.h>using namespace std;#define ma...

2018-03-17 20:16:09 218

原创 洛谷2253 好一个一中腰鼓!

题目:好一个一中腰鼓!思路:单点修改的线段树。每一个节点维护当前区间的长度、最左和最右鼓的颜色和最长的交错前缀长和后缀长。注意边界问题。代码:#include<bits/stdc++.h>using namespace std;#define maxn 20000struct Node { int len; int x,y; int lw,rw;};int n,m...

2018-03-17 12:34:19 214

原创 二分图匹配 匈牙利算法 模板

题目:二分图匹配参考:神犇的博客代码:#include<bits/stdc++.h>using namespace std;#define maxn 2000int n,m,e;bool a[maxn+5][maxn+5];int match[maxn+5];bool use[maxn+5];void init() { memset(a,0,sizeof(a));...

2018-03-16 13:33:09 192

原创 uva 11354 Bond

题目:Bond 题意:给出一张无向图和m个询问x y,输出x,y之间的最小瓶颈路。思路:用lca倍增求最小瓶颈路。注意:当x和y的lca是y时要特判。代码:#include<bits/stdc++.h>using namespace std;#define maxn 50000#define maxm 100000#define maxl 20struct Edge {...

2018-03-14 13:13:52 315

原创 la 5713 Qin Shi Huang's National Road System

题目:Qin Shi Huang's National Road System题意:秦始皇想要在中国修路,使城市之间相互可到达,并且花费的代价最小。有n个城市,每个城市用x,y,p三个量描述,表示坐标为(x,y)的城市有p的人口。每两个城市之间的路径长等于它们之间的几何距离。修路的代价等于路径的总长度。可以使用法术,使一条路径免费修好。设那条免费路径两端的城市人口总和为A,两条修路的总代价为B,输...

2018-03-11 18:14:02 220

原创 uva 10600 ACM Contest and Blackout

题目:ACM Contest and Blackout题意:给出一张无向图,求最小生成树及次小生成树(非严格)。思路:求次小生成树。参考代码:#include<bits/stdc++.h>using namespace std;#define maxn 5000#define maxm 200000struct Edge { int x,y,z; Edge(int xx...

2018-03-10 20:43:23 249

原创 最小生成树 kruskal算法模板

复习QwQ……题目:最小生成树思想:不停地加入权值最小且不予其它边构成环的边。代码:#include<bits/stdc++.h>using namespace std;#define maxn 5000#define maxm 200000struct Edge{ int x,y,z; Edge(int xx=0,int yy=0,int zz=0){ x=xx,...

2018-03-10 18:31:43 185

原创 poj 3463 Sightseeing

题目:Sightseeing题意:给出一张有向图,求从起点到终点的最短路条数和比最短路长1的路径条数和。思路:dijkstra求出最短路和次短路以及条数。如果次短路只比最短路长1,输出条数和。否则仅输出最短路的条数。参考这位dalao的代码。代码:#include <cstdio>#include <iostream>#include <algorithm>...

2018-03-10 16:29:49 206

原创 la 3661 Animal Run

题目:Animal Run题意:有一群动物想从网格图的起点(左上角)跑到终点(右下角)。这张网格图的每一条边都有一个正整数的权值,代表拦截这条边所需的人数。现在要求出最少需要多少人拦截,才能使动物无法跑到终点。思路:把每一个三角形的面当做节点,并从左到右编号,即每一个节点(x,y)的编号为(x-1)*(2*(m-1))+y (数组从1开始编号)。对于两个相邻的三角形,在它们之间连上一条边,权值为其...

2018-03-09 16:26:19 252

原创 la 3561 Low Cost Air Travel

题目:Low Cost Air Travel题意:给出nt种机票,输入每张机票的价格,以及它可到达的地点。对于每张机票,只能从第一站开始乘坐,但是可以从任何一站下飞机。再给出ni张行程表,每张行程表上包括一串地名,必需按顺序到达,但是中途可以经过其它城市作为中转。问满足每张行程单所需的最小花费以及路径。若有多种可能,输出经过城市最少的路径。思路:对于每一张行程单单独处理。每一个点(i,j)代表当前...

2018-03-05 20:02:01 354

原创 uva 11478 Halum

题目:Halum题意:给出一张带权的有向图(可能有负权),可以对任意一个点进行操作,选择一个整数d,使这个点的所有出边上的值增加d,入边上的值减少d,问可能出现的最大的最小边权(要求这个值为正整数)。思路:假设在同一个点上操作了两次,选的数是d1和d2,那么第一次把所有出边上的值增加d1,所有入边上的值减少d1,第二次把所有出边上的值增加d2,所有入边上的值减少d2。此时从整体上看,每条入边上的值...

2018-03-02 09:22:13 210

空空如也

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

TA关注的人

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