自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019牛客暑期多校训练营(第八场)

A

2019-08-11 13:04:15 319

原创 2019牛客暑期多校训练营(第七场)

A:

2019-08-11 13:03:40 241

原创 2019牛客暑期多校训练营(第六场)

A:

2019-08-11 13:02:46 181

原创 2019牛客暑期多校训练营(第五场)

A:

2019-08-11 13:02:07 151

原创 2019牛客暑期多校训练营(第四场)

A:

2019-08-11 13:00:49 204

原创 2019牛客暑期多校训练营(第三场)

A:

2019-08-11 13:00:06 163

原创 2019牛客暑期多校训练营(第二场)

A:

2019-08-11 12:59:19 126

原创 2019牛客暑期多校训练营(第一场)

A:

2019-08-11 12:58:30 196

原创 后缀数组

#include<bits/stdc++.h>using namespace std;const int maxn=1e6+100;char s[maxn];int y[maxn],x[maxn],c[maxn],sa[maxn],rk[maxn],height[maxn],wt[30];int n,m;void get_SA(){ for (int i=1;...

2019-07-06 19:53:59 141

原创 ac自动机 模板

/*洛谷 p3796题意:n个模式串 一个文本串 问这个n个模式串最多的一个或者多个出现在文本串里的个数 顺便输出这个最多的文本串 */ #include<bits/stdc++.h>using namespace std;const int N=5e5+1000;int ans[N*10];char s[N*10];struct tire{ int sz=0...

2019-07-05 10:39:55 181

原创 再写ac自动机

/*洛谷 p3808 */ #include<bits/stdc++.h>using namespace std;const int N=5e5+1000;struct tire{ int c[N][26],val[N],fail[N],cnt; //字典树 void Insert(char *s){ int len=strlen(s);int now=0;...

2019-07-04 22:31:35 155

原创 分块

题目链接题意:就是单点更新 区间查询最小值线段树做法:#include<bits/stdc++.h>using namespace std;const int N=1e5+100;typedef long long LL;LL tree[N<<2];const int inf=0x3f3f3f3f; void build(int l,int r,i...

2019-07-04 19:50:45 174

原创 fget file

/*https://www.runoob.com/cprogramming/c-file-io.html*/#include<bits/stdc++.h>using namespace std;int main(){ char s[100]; fgets(s,100,stdin); int len=strlen(s); cout<&l...

2019-06-25 14:14:44 234

原创 二分图匹配()

跑最大流dinic O((nsqrt(m))) 匈牙利算法 O (nm)学习的博客:https://blog.csdn.net/dark_scope/article/details/8880547匈牙利算法bool dfs(int x){ for(int i=1;i<=m;i++){ if(!vis[i]&&mp[x][i]){//如果以...

2019-06-20 15:41:04 145

原创 线段树维护---区间的平方值和

/*https://ac.nowcoder.com/acm/contest/917/J线段树维护区间的每个平方和 */#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N=1e5+100;LL tree1[N<<2],tree2[N<&lt...

2019-06-20 11:19:44 960

原创 区间dp

一.什么是区间dp?顾名思义:区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。二.核心思路既然让我求解在一个区间上的最优解,那么我把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。所以在代码实现上,我可以枚举区间长度len为每次分割成的小区间长度(由短到长不断合并),内层枚举该...

2019-06-18 21:43:18 490

原创 建立一棵二叉树 输出前序

/*洛谷 p1305输入一串二叉树,用遍历前序打出。第一行为二叉树的节点数n。(n \leq 26n≤26)后面n行,每一个字母为节点,后两个字母分别为其左右儿子。空节点用*表示6abcbdicj*d**i**j** 输出:abdicj思路:建立一个节点包含父节点 左儿子 右儿子 的节点(有父节点可以判断谁是根结点) */#include<bits/stdc...

2019-06-18 18:59:48 725

原创 划分树

划分树,类似线段树,主要用于求解某个区间的第k 大元素(时间复杂度log(n)),快排本也可以快速找出,但快排会改变原序列,所以每求一次都得恢复序列。  下面就以POJ 2104进行解说:  题目意思就是,给你n 个数的原序列,有m 次询问,每次询问给出l、r、k,求原序列l 到r 之间第k 大的数。n范围10万,m范围5千,这道题用快排也可以过,快排过的时间复杂度n*m,而划分树是m...

2019-06-17 13:09:48 257

原创 线段树(最小值)+01背包

/*https://ac.nowcoder.com/acm/contest/917/E题意:离子炮有n个操作信号,第i个操作信号的强度为b[i]。总体强度为各操作信号的强度之和。由于有些信号太弱了了 (强度<0)。 有 m位队友,第i位队友只会删除编号在 L[i] 和 R[i]之间的信号,且每删除一个信号,花费 C[i]格能量。飞船一共有 k格能量,问他在请队友删除完信号后,总...

2019-06-15 22:43:08 215

原创 l~r区间查找等于k的数有多少个(主席树)

/*https://ac.nowcoder.com/acm/contest/917/Hn个数 m个询问(m,n<1e4) 这个n个数是大于等于0的 询问l --- r有多少等于k的值题解:可以把a[i]当成下标 i当成数组 */#include<bits/stdc++.h>using namespace std;const int N=1e5+100;...

2019-06-15 20:31:41 1174

原创 树的分治

我们先随意指定一个根rt,将这棵树转化成有根树不难发现树上的路径分为两类,经过根节点rt的路径和包含于rt的某棵子树里(不经过rt)的对于前者, 我们用dis[u]dis[u]表示结点uu到根节点rtrt的路径长度, 则u到v的路径长即为dis[u]+dis[v]dis[u]+dis[v]对于后者, 既然uu到vv的路径包含在rtrt的某个子树内, 那么我们就找到这棵子树的根,再对他...

2019-06-14 15:57:46 204

原创 树的重心

/*poj 1655 题意:求树的重心和去掉重心的最大子树树的重心定义:对于一个树中节点x,当我们删去它时会将原来的树分割成若干个不相连的部分,其中每个部分都是一颗子树。设max_part表示这些部分中最大的一棵子树,若删去节点x能够使得max_part最小,则称这个点为树的重心 树的重心的性质:定义1:找到一个点,删除它得到的森林中最大的子树节点数最少,那么这个点就是这棵树...

2019-06-14 10:50:59 268

原创 树的直径

/*poj 1985题意:一棵树n个点 m个边(有边值) 求最长的路径树的直径:定义:树上任意俩点的距离最大值方法:俩次bfs 任意一点找到最远的点u。在找离u最远的点v 既u->v即是直径 */#include<cstdio>#include<cmath>#include<algorithm>#include<st...

2019-06-12 17:28:58 247

原创 矩阵加速(数列)

P1962 斐波那契数列题目背景大家都知道,斐波那契数列是满足如下性质的一个数列:• f(1) = 1• f(2) = 1• f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数)题目描述请你求出 f(n) mod 1000000007 的值。输入输出格式输入格式:·第 1 行:一个整数 n输出格式:第 1 行...

2019-06-11 16:03:59 365

原创 P4783 【模板】矩阵求逆

设A是数域上的一个n阶矩阵,若在相同数域上存在另一个n阶矩阵B,使得:AB=BA=E,则我们称B是A的逆矩阵,而A则被称为可逆矩阵。注:E为单位矩阵。注意矩阵和行列式是不一样的 行列式是可以计算的/*落谷:p4783求一个N\times NN×N的矩阵的逆矩阵。答案对10^9+7取模。 */#include<bits/stdc++.h>u...

2019-06-11 13:38:34 235

原创 P3390 【模板】矩阵快速幂

/*落谷:p3390给定n*n的矩阵A,求A^k %p */#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N=110;const LL mod=1e9+7;LL n,p;struct node{ LL m[N][N]; friend node operato...

2019-06-10 13:21:42 190

原创 P3389 【模板】高斯消元法

/*落谷:p3389给定一个线性方程组,对其求解 */ #include<bits/stdc++.h>using namespace std;const double eps=1e-8;double a[110][110];int n;void Gauss(){ for(int i=1;i<=n;i++){//枚举列 int maxn=i; fo...

2019-06-10 12:14:10 146

原创 P3811 【模板】乘法逆元

1.乘法逆元(在维基百科中也叫倒数,当然是 mod p后的,其实就是倒数不是吗?):如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。2.费马小定理(定义来自维基百科):假如a是一个整数,p是一个质数,那么是p的倍数,可以表示为如果a不是p的倍数,这个定理也可以写成3.扩展欧几里得(定义来自维基百科):已...

2019-06-09 16:15:22 582

原创 fft解决多项式相乘

http://uoj.ac/problem/34#include<bits/stdc++.h>#define N 262145#define pi acos(-1)using namespace std;typedef complex<double> E;int R[N];E a[N],b[N];int lenth=1,Reverse[N];inli...

2019-06-06 17:29:43 545

原创 复数std::complex

complex是个类模板,它可以采用float、double和long double 3种原始类型进行定制complex同时支持如下操作符:+-*/=+=-=*=/===!= 函数 含义  real() 返回复数的实部  imag() ...

2019-06-06 16:04:03 4463

原创 fft

https://blog.csdn.net/enjoy_pascal/article/details/81478582

2019-06-06 13:41:49 539

原创 Polya定理

https://blog.csdn.net/WhereIsHeroFrom/article/details/79631703

2019-06-05 20:46:32 274

原创 欧拉函数

https://blog.csdn.net/liuzibujian/article/details/81086324

2019-06-05 20:20:29 151

原创 P3385 【模板】负环

/*p3385题意:判断一个图里是否有负环题解:spfa是最短路算法.如果一个环上的边权有负的,我们可以重复走这条路来获得更小的边权,所以这可以作为我们使用spfa判断负环的根据 */#include<bits/stdc++.h>using namespace std;const int N=1e4+10;const int inf=0x3f3f3f3f;...

2019-06-05 19:04:48 272

原创 缩点

缩点,就是把一张有向有环图中的环缩成一个个点,形成一个有向无环图。根据题目意思,我们只需要找出一条点权最大的路径就行了,不限制点的个数。那么考虑对于一个环上的点被选择了,一整条环是不是应该都被选择,这一定很优,能选干嘛不选。很关键的是题目还允许我们重复经过某条边或者某个点,我们就不需要考虑其他了。因此整个环实际上可以看成一个点(选了其中一个点就应该选其他的点)强连通定义:在有向图...

2019-06-05 16:47:52 840

原创 堆 P3378 【模板】堆

这个堆是边插入边操作的 和全部给出那种变成堆是有区别的#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int head[N];int sz;void push(int x){ head[++sz]=x;//先插入到最新叶节点 int now=sz; while(now){ int ...

2019-06-04 22:09:02 253

原创 Codeforces Round #563 (Div. 2)

A:题意:给2*n个数,如何重新排序使得前n个和后n个不相同,如果一直相同则输出-1题解:从大到小排序如果第一个和最后一个是相同的说明所有值都是相同的,则此时输出-1 否则输出排序好的序列#include<bits/stdc++.h> using namespace std;int main(){ int n; scanf("%d",&n); vect...

2019-06-04 17:19:47 309

原创 秦九韶算法

给定a[]和x,求多项式的值。double f (int n,double a[],double x){//n代表a[]的大小,数组的传递需要指定数组大小 int i; //a[]储存每个x项的系数值,在函数外初始化 double p=a[n];//初始化p; for(i=n;i>0;i--) ...

2019-06-03 20:40:37 362

原创 三分

二分查找 适用于单调函数中逼近求解某点的值。如果遇到凸性或凹形函数时,可以用三分查找求那个凸点或凹点。下面的方法应该是三分查找的一个变形。如图所示,已知左右端点L、R,要求找到白点的位置。思路:通过不断缩小 [L,R] 的范围,无限逼近白点。做法:先取 [L,R] 的中点 mid,再取 [mid,R] 的中点 mmid,通过比较 f(mid) 与 f(mmid) 的大小来...

2019-06-03 20:38:23 127

原创 挑战程序设计 CGL_7_E:Cross Points of Circle

/*向量a ,向量bc=a-b c的方向指向的是a 指向的是被减数 pai=3.1415926=acos(-1.0); C++中cos,sin,asin,acos这些三角函数操作的是弧度,而非角度,你需要把角度转化为弧度.弧度=角度*Pi/180;例子1:比如对边和邻边分别为a,b 设角度为x,则 x=atan(a/b); 其中x为弧度制 如需转换为角度值,则x*1...

2019-05-31 19:36:56 234

空空如也

空空如也

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

TA关注的人

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