随笔分类 -  [0-F]----数据结构

摘要:Codeforces Round #686 (Div. 3)E. Number of Simple Paths 题意 给你n个点n条边的图,让你求树上的简单路径数。 简单路径:从a->b的方法,需要注意的是1->2>3,3->2->1算一种 思路 显然建成后的图是一棵树多了一条边,这种图又叫环基树。 阅读全文
posted @ 2020-11-25 19:57 waryan 阅读(128) 评论(0) 推荐(0)
摘要:#NC19858战争(war) 题意 如果后面的人和前面的人矛盾那么后面的人一定说谎了,输出他的位置。否则如果没有说谎输出$K+1$ 思路 二分长度,因为如果二分的区间[l,mid]有人说谎那么[r,mid]就不用判断了。但是如果[l,mid]没有人说谎,那么我们就要将mid扩大继续寻找说谎的人。仔 阅读全文
posted @ 2020-08-12 21:01 waryan 阅读(160) 评论(0) 推荐(0)
摘要:树剖的换根分析 (先以1为根建树)在求换根后的$x$的子树的相关信息(最小值为例)时,我们可以这样考虑: ​ 如果现在的根为$r$,当我输入查询$x$的子树分为以下几种情况: 1 .\(x==r\),此时我们要查询的子树的最小值(以$r$为根)就是以1为根时的全局最小值 2 .当$x\quad r$ 阅读全文
posted @ 2020-08-11 17:16 waryan 阅读(197) 评论(0) 推荐(1)
摘要:#include<bits/stdc++.h> #define INF 0x3f3f3f3f #define DOF 0x7f7f7f7f #define endl '\n' #define mem(a,b) memset(a,b,sizeof(a)) #define debug(case,x); 阅读全文
posted @ 2020-07-18 17:30 waryan 阅读(226) 评论(0) 推荐(0)
摘要:同构图:图论当中的术语,假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构,如果G=G1,则称他为一个自同构 HDU3926-Hand in Hand 解 阅读全文
posted @ 2020-03-28 21:01 waryan 阅读(509) 评论(0) 推荐(1)
摘要:一:Largest Rectangle in a Histogram[一维单调栈] 题目大意: 求最大矩形面积 收获: 单调栈的应用 stl栈模拟: #include<cstdio> #include<stack> using namespace std; typedef long long ll; 阅读全文
posted @ 2020-02-11 17:24 waryan 阅读(357) 评论(0) 推荐(0)
摘要:1.单点修改裸题(HDU1754) #include<iostream> #include<algorithm> using namespace std; const int maxn=2e+5; int n,m,a[maxn]; struct tree{ int l,r,v; }trees[max 阅读全文
posted @ 2020-01-29 17:47 waryan 阅读(207) 评论(0) 推荐(1)
摘要:一.st取区间最大值 模板题洛谷P3865:https://www.luogu.com.cn/problem/P3865 注意点: 1.f[i][j]=f[i][i+2j-1] 2.预处理时是以2的次幂进行跳的取区间最大值 3.query询问函数: 询问时取的len的方法是由:2x<=r-l+1来取 阅读全文
posted @ 2020-01-27 22:21 waryan 阅读(248) 评论(0) 推荐(0)
摘要:const int N=120; int father[N]; int rank1[N]; void init(int Size) { for(int i=1;i<=Size;++i) father[i]=i,rank1[i]=0; } int Find(int x) { while(x!=fath 阅读全文
posted @ 2020-01-23 18:20 waryan 阅读(158) 评论(0) 推荐(0)