自定义博客皮肤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)
  • 收藏
  • 关注

原创 Lca(倍增) 差分约束 tarjan 网络流 板子总结

具体解释lca(转载)模板题#include"bits/stdc++.h"using namespace std;int deep[500005],fa[500005][50];vector<int>v[500005];int n,m,s;void dfs(int s,int f){ deep[s]=deep[f]+1; fa[s][0]=f; for(int i=1;i<=29;i++){ fa[s][i]=fa[fa[s][i-1]][i-1]; } fo

2021-05-14 22:23:44 166

原创 最短路专题 bellman-ford floyd spfa dijk johnson 个人记录板子

bellman-ford可以求单源最短路 可以求边数限制的最短路假设有n个点 m个边求单源最短路 一共松弛n-1次 因为如果不存在换1到n的最短有n-1条边每次把所有的边松弛一遍 每次松弛玩我们要把松弛玩的最短路数组备份下来,如果不备份用当前这个来更新,会出现错误模板题#include"bits/stdc++.h"using namespace std;struct node{ int u,v,w;};node v[50005];int dis[505],a[505];const

2021-05-10 22:00:38 97

转载 卡特兰数 转载

卡特兰数

2021-04-23 09:28:53 74

原创 一维,二维差分和前缀和,矩阵哈希

只是整理板子一维差分需要创建一个差分数组,gap[i]=a[i]-a[i-1][l,r]都加c因为a[r]+=c则gap[r+1]=a[r+1]-(a[r]+c)表现到差分数组上就是gap[r+1]-=c因为差分数组变为原数组就是依次相加,所以我们只需要在gap[l]+=c;那么在变为原数时[l+1,r]都会加上c模板题#include"bits/stdc++.h"using namespace std;typedef long long ll;ll n,q;ll a[10000

2021-04-15 11:02:40 95

原创 kmp模板

kmp详解模板题#include"iostream"#include"cstring"using namespace std;char s1[1000005],s2[1000005];int nextt[1000005];int len1,len2;void get_next(){ nextt[0]=-1; int i=0,j=-1; while(i<len2){ if(j==-1||s2[i]==s2[j]){ nextt[++i]=++j; } else{

2021-04-11 10:01:31 71

原创 马拉车算法和字符串哈希

马拉车算法是解决最长回文子串的有力武器例如 string s=“abadccda”我们要想求出最长回文子串一般都是暴力,枚举子串的左右端点,一般枚举是o(n2)的复杂度,判断又是又要o(n),也可以用字符串哈希来判断,不过铁定超时.但马拉车可以坐到o(n)的复杂度,他和kmp的思想很类似就保存前面的信息来利用.设a[i]表示以i为回文中心的最长回文半径例如aba(以1为第一个下标) a[2=2;我们如何求出每一个位置的a[i]呢?string s=“abadccda”因为回文子串长度分奇偶,

2021-04-10 20:38:05 176

原创 java 学习 类的三大特性

java 三大特性 继承,封装,多态类为抽象,对象为实例化.例如我们都是人,人就是类,我们就是人这个模板实例化出来的对象.都拥有类里面共有的属性,和方法.但是属性又不同。继承:封装就是将属性和方法封装到一个类中,变为该类的属性和方法.java中只能单继承,子类可以继承父类的方法和属性(私有方法可以继承,但是不可调用和不可见), class A extends B 表示A继承B,A拥有B的一切方法和属性,而且可以添加新属性,可以理解父类的扩展。例如 anmials类为父类 那么子类可以为dog d

2021-03-21 15:15:30 84

原创 牛客练习赛77C,D题

C题这一题暴力求每个数的约数个然后相加肯定会超时1到n这个n个数的约数最大为n我们可以枚举每个约数出现的次数然后和约数相乘即为该约数的贡献,如果这样暴力枚举每个约数也会超时,但是我们发现这个有些相邻约数出现的次数是相同的,例如当n=10时,6,7,8,9,10都出现了一个,所以我们可以用整除分块代码如下#include"bits/stdc++.h"using namespace std;typedef long long ll;ll n;ll check(ll x){ ll ans

2021-02-28 21:52:25 88

原创 2021牛客寒假算法基础集训营1 j题

j题两个数求最小质因数,除了两个数乘积除以两个最大公约数以外,我们可以用唯一分解定理,求出两个数相同质因子最高次数,然后相乘例如2223 和2233 两者的最小公倍数即为22233根据题意我们可得没被划掉的数有两种或两种以上的质因子,所以我们求出剩下数相同质因子的最高次数,因为有两种或以上的质因子,如果我们要求最大值就假设为两个质因子,当我们求2这个质因子得最高次数时,我们可以让他乘个3,即pow(2,k)3<=n能得出k=log(n/3)/log2,其他的因子乘2就能得到最大值,我们最大只要

2021-02-04 10:49:29 224

原创 求一个数的最小素因子外加快速分解质因子

这种方法使用与数据小于1e7,这种适用于分解1到n所有数的质因子,而且打印出来是从小到大排好序的首先找到每个数的最小质因子,不停的除以最小素因子,只到x==1如果是分解单个还是根号n复杂度的更好一点#include"bits/stdc++.h"using namespace std;typedef unsigned long long ll;ll n,mod=1e9+7;ll visit[10000005],num=1,a[10000005],p[10000005];//p[x]代表x的最小

2021-02-04 09:59:46 784

原创 线性基

线性基可以具体解决问题如给你一个数组求一个数是否可以被这个数组异或出来,或求这个数组最大,最小可异或的值,或第k大值例题 牛客 牛牛数数 其中包含求第k大值typedef long long ll;ll n,k;ll a[100005];ll d[100];ll cnt,p[100];ll f;void insert(ll x){ for(int i=62;i>=0;i--){ if(x&(1ll<<i)){ if(d[i]){ x^=d[i]

2021-01-25 16:30:55 118 1

原创 最大约数个数

最大约数个数可以一个一个求 数据过大时必超时根据约数和定理:对于一个大于1正整数n可以分解质因数:n=p1a1*p2a2*p3a3*…*pkak,则由约数个数定理可知n的正约数有(a₁+1)(a₂+1)(a₃+1)…(ak+1)个,#pragma GGC optimize(2)#include"bits/stdc++.h"using namespace std;int a,b;bool is(int x){ if(x==1)return false; for(int i=2;i*i<

2020-10-14 15:57:45 175

原创 欧拉函数

例题 一道简单的几何变换欧拉函数:对于一个正整数n,1~n-1中有多少互素的延伸:对于一个正整数n,不大于的n的与n互素的正整数和等于1/2xNxf(n);#include"bits/stdc++.h"using namespace std;typedef long long ll;const int len=1e5+5;ll tot;ll pri[len],phi[len],visit[len];ll n;void get(){ phi[1]=1; for(int i=2;i&

2020-09-29 13:13:52 735 1

原创 2013届蓝桥杯b组

1高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年月日。提交答案

2020-09-10 16:41:03 164

转载 斐波那契列的性质

性质

2020-08-13 09:10:21 102

原创 vector的强大功能

昨天突然vector好强大附上一个 文章链接vector

2020-08-13 08:58:45 199

原创 牛客算法周练19

1.神秘钥匙这一题一开始没什么思路,手算了前几个发现了规律f(k)=k*pow(2,k-1)%mod;这个公式也没什技巧就一个快速幂#include"bits/stdc++.h"using namespace std;typedef long long ll;const int mod=1e9+7;ll n;ll qpower(ll a,ll b){ ll sum=1; while(b){ if(b%2)sum=(sum*a)%mod; b/

2020-08-12 10:56:24 105

原创 牛客s1第10场 黄金钻石

牛牛排队这一题模拟好像也能过,不过可以通过求出每个位置牛牛到达时为0的最小圈数,圈数相等的情况下,门的位置靠前即可。class Solution {public: int t[100005],min_num=1e9,pos=0; int solve(int n, vector<int>& a) { for(int i=0;i<a.size();i++){ a[i]-=i; if(a[i]<=

2020-08-09 09:05:50 83

原创 牛客算法周周练18

1.小K的疑惑没什么思路2.救救企鹅不算难的字符串处理,每次找到a然后用b替换,就是字符串find和replace函数#include"bits/stdc++.h"using namespace std;string s,a,b,temp;int main(){ cin>>s>>a>>b; int p=0; while(s.find(a,p)!=-1){ p=s.find(a,p); s=s.replace(p,a.length(),b);

2020-08-07 12:17:47 111

原创 快速乘,快速幂

老是忘记还是写下来记录一下快速乘,和快速幂都是防止爆int,或long long,如果爆longlong可以选择两者结合,或者使用_int128(上网搜了还是不懂)快速乘例题#include"iostream"using namespace std;int main(){ long long a, b, m,sum=0; cin >> a >> b >> m; while (b){ if (b % 2){ sum = (sum + a) % m

2020-08-04 11:01:51 133

原创 p1631 序列合并

这一题我用的是优先队列(不会优先队列可以先写洛谷合并石子),思路是先将两个数组排序,然后用两个for循环逐个相加,如果优先队列的长度小于n,直接入队列,如果大于n比较队首元素与x的大小,如果x小于队首,将队首出队列,然后将x入队列。#include"bits/stdc++.h"using namespace std;int n;int a[100000],b[100000],c[10...

2020-04-19 11:57:46 144

原创 洛谷 p1170

此题一开始可能 会以为只需要判断周围8个点即可,这样会全wa,此题实际是判断两点之间是否还有其他整数点,网上百度的结论是,两个之间有gcd(abs(x1-x2),abs(y1-y2)-1个整数点,由此结论可写出正确代码。#include"bits/stdc++.h"using namespace std;int n;int gcd(int a,int b){//辗转相除法...

2020-04-19 10:48:11 229

空空如也

空空如也

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

TA关注的人

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