自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 后缀自动机专题

https://www.cnblogs.com/--560/p/5457023.htmlSPOJ Longest Common Substring求两串的最长公共子串#include<bits/stdc++.h>using namespace std;const int MAX=2e6;const int INF=0x3f3f3f3f;struct Tire...

2018-10-03 19:08:51 353

原创 回文自动机专题

Palindromic Tree——回文树【处理一类回文串问题的强力工具】num[i]:i表示的回文字符串中有多少个本质不同的字符串(包括本身)cnt[i]:i表示的回文字符串在整个字符串中出现了多少次HDU3948 The Number of Palindromes求本质不同的回文子串个数#include<bits/stdc++.h>using namespa...

2018-10-02 10:57:19 891

原创 AC自动机专题

https://blog.csdn.net/lingzidong/article/details/80714431AC自动机两大题型:查询字串、建立有向图DP(常数较大串数较少需要矩阵快速幂)AC自动机学习:18.10.1HDU2222 Keywords Search给定n个单词和1个句子,求句子中不同单词的个数#include<bits/stdc++.h>us...

2018-09-26 21:31:50 165

原创 FFT/NTT/FWT专题

FFT可快速计算卷积,卷积为两个生成函数的乘积,生成函数为FFT 卷积 生成函数 的关系多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/例题与常用套路【入门】HDU1402 A * B Problem Plus大数乘法生成函数:,设两个大数位:、,L1/L2为两个大数的长度,利用FFT求两个函数的卷积,将所得改为十进制整数即为所求答案#include&l...

2018-09-08 14:24:09 553

原创 快速幂/数论技巧专题

快速幂取模long long pow(long long a,int k,long long mod)//快速幂取模{ long long b=1; while(k) { if(k&1) b=b*a%mod; a=a*a%mod; k>>=1; } return b;}矩阵快速...

2018-09-07 19:54:38 190

原创 树链剖分专题

基础:DFS序+线段树树链剖分树链剖分学习:2018.9.7HDU3966 Aragorn's Story树上点到点最短路径区间点权修改,单点查询#include<bits/stdc++.h>using namespace std;const int MAX=5e4+1;struct P{ int to,nxt;}e[MAX*2];int he...

2018-09-03 20:02:26 165

原创 期望与概率DP专题/高斯消元

高斯消元总结:概率和期望问题的求解都要依靠递推式,概率问题按照递推式进行dp,期望问题根据递推式化简的难易程度通过化简再dp或高斯消元求解,该类问题大部分仍属于各个类型的dp求解问题2018.9.3-概率与期望dp学习Discovering Gold一排1到n的格子,每个格子上有黄金 ai ,你最开始在 1 号,每一次投骰子决定到哪一个格子,超出1~n范围则重新投掷,你到了哪个格子...

2018-08-19 14:16:40 1336

原创 组合数取模专题/质因分解

T^TOJ 组合数取模乘法逆元知识组合计数-插板法类型0:n,m<=1000 直接暴力预处理杨辉三角,预处理复杂度O(n*n) 公式:C(n,m)=C(n,n-m)=C(n-1,m-1)+C(n-1,m)类型1:n,m<=1e6   且模数p是质数。   O(n)预处理 阶乘fac[i]和阶乘的逆ifac即可。然后 C(n,m)=fac[n]*ifac[m]*ifac[...

2018-08-15 19:55:51 628

原创 C++ STL库/C头文件函数

转载@Memset  转载@Jason333目录Vector                          操作函数List                               操作函数Set和Multiset               操作函数Map和Multimap           操作函数<String>优先队列<strin...

2018-08-11 17:21:48 3746

原创 容斥原理/莫比乌斯反演/欧拉函数/线性筛专题

欧拉函数线性筛杜教筛莫比乌斯反演容斥原理HDU2588 GCD欧拉函数给定N,M,求1<=X<=N 且gcd(X,N)>=M条件下X的个数#include<bits/stdc++.h>using namespace std;int euler(int n){ int ans=n; for(int i=2;i*i&...

2018-08-08 10:25:16 964

原创 树状数组专题

 单点更新 区间查询void add(int x,int v){ while(x<=n) c[x]+=v,x+=x&(-x);}int get(int r){ int sum=0; while(r) sum+=c[r],r-=r&(-r); return sum;}int get(int l, int r){ r...

2018-08-07 16:45:37 890

原创 博弈论专题

转载一.  巴什博奕(Bash Game):  A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30。这应该是最古老的关于巴什博奕的游戏了吧。其实如果知道原理,这游戏一点运气成分都没有,只和先手后手有关,比如第一次报数,A报k个数,那么B报5-k个数,那么B报数之后问题就变为,A和B一块报数,看谁先报到25了,进而变为20,15,10,5,当到5的时候,不管A怎么报数,最后一...

2018-08-05 16:44:45 208

原创 凸包+旋转卡壳专题

洛谷P2742求凸包周长#include<bits/stdc++.h>using namespace std;const int MAX=1e4+1;const double eps=1e-8;struct point{ double x,y; point(){} point(double a,double b) { ...

2018-07-28 13:54:43 1065

转载 linux aliyun yum源

1、备份系统自带的yum源[root@ ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下载和自己操作系统版本对应的yum源[root@ ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyu...

2019-03-27 14:49:29 510

转载 阿里云CentO S网站部署

一、JDK安装查看CentOS自带JDK是否已安装 1 [root@test ~]# yum list installed |grep java 若有自带安装的JDK,应如下操作进行卸载CentOS系统自带Java环境 1 2 3 4 5 6 7 8 9 10 ...

2019-03-07 00:15:35 378

原创 ZOJ4062 Plants vs. Zombies 二分

ZOJ4062 Plants vs. Zombies一机器人给植物浇水,浇水之前必须移动一格,移动后必须浇水,从1~n的位置上有n个植物,每个植物都有自己的生长速度,每浇一次生长一次,机器人初始位置为0,把每种方案浇灌下最低的植物高度作为方案值,求最大的方案值最大化最小值二分:二分最大方案值,每次模拟计算方案的最小花费是否超出机器人最大的行走距离,若不超出扩大否则缩小#inclu...

2018-11-06 20:50:32 657

原创 codeforce626 E. Simple Skewness 二分

codeforce626 E. Simple Skewness均值-中位数 最大的子集枚举中值,二分区间大小要使 均值-中位数 最大,所以最大化均值,即从最后取最大的L个数,从中位数前取相邻的L个数若区间扩大均值扩大则扩大,否则缩小#include<bits/stdc++.h>using namespace std;const int MAX=2e5+5;i...

2018-11-06 20:42:35 297

原创 Wannafly27 C 蓝魔法师 树形DP

Wannafly27 C 蓝魔法师给定一棵树,删除一些边,使每个连通块不超过k个节点表示第i个节点的子树对其父节点提供j个连通量的方案数#include<bits/stdc++.h>using namespace std;const int MAX=2e3+5;const int MOD=998244353;int n,K;struct P{ ...

2018-10-27 09:06:55 416 3

原创 codeforce1073 C. Vasya and Robot 二分

codeforce1073 C. Vasya and Robot给定N个操作和一个终止点(x,y)求改变最小的区间操作区间R-L+1,使N个操作之后到达终止节点二分区间长度mid,预处理区间位置偏移量,尺取每个长度为mid的区间(可以全都修改),若存在则扩大区间,否则缩小区间#include<bits/stdc++.h>using namespace std;cons...

2018-10-26 16:29:07 733 3

原创 Polya置换群计数

波利亚计数(群论)POJ2154 Color求用m种颜色给n个物品染色的方案数--旋转根据Polya定理有此题中m=n#include<bits/stdc++.h>using namespace std;int t,n,p;int euler(int n){ int ans=n; for(int i=2;i*i<=n;i++) ...

2018-10-24 21:02:41 326

原创 codeforce893 F. Subtree Minimum Query 线段树合并

F. Subtree Minimum Query给定一棵树,每个节点都有自己的权值,对于每个询问,查询x的子树中与x深度差不超过y的节点的最小权值对树上的每一个节点以深度建立动态线段树,父节点合并子节点的线段树,O(logn)查询#include<bits/stdc++.h>using namespace std;const int MAX=1e5+5;const ...

2018-10-24 19:56:17 231

原创 ZOJ4027 Sequence Swapping 线性DP

ZOJ4027 Sequence Swapping给定一个括号序列,仅有'()'时左右括号可以相互交换,每个括号都有自己的价值a[i],每次交换费用为a[i]*a[i+1];求最高的费用每个‘(’括号只能与右边相邻的‘)’交换位置,表示第i个左括号到达j位置的最大费用等于第i个左括号到达位置j的费用+位置j右边的最大的#include<bits/stdc++.h&g...

2018-10-23 21:16:28 367

原创 codeforce625 D. Finals in arithmetic 构造

D. Finals in arithmetic给定一个长度小于1e5的数b,求数a+~a==b,a没有前导零考虑进位过程中除第一个数位外,没有对称的L和R使b[L]<b[R],所以只要判断第一个数位即可进位过程中,只有进1位和不进位两种情况,此外都为非法,所以b[L]==b[R]或b[L]-b[R]==1在判断完第一个数位的特殊情况(为1,且与最后一位不对称)后,其他的位数都...

2018-10-23 18:24:47 201

原创 树形DP专题

HDU1520 Anniversary party给定棵树和每个节点的权值,相邻父子节点的不可重复选取,求其可以取到的最大权值#include<bits/stdc++.h>using namespace std;const int MAX=6e3+5;int n,a[MAX],d[MAX];struct P{ int to,nxt;}e[MAX];int...

2018-10-21 15:39:28 184

原创 数位DP专题

不要62给定一个[L,R]的区间,统计其中数位上不包含62和4的个数记忆化搜索,每次标记上一位是否为6,并判断这一位是否为4或2,递推即可#include<bits/stdc++.h>using namespace std;const int MAX=1e5+5;int L,R,a[20];long long dp[20][2];long long dfs(in...

2018-10-21 15:07:13 172

原创 codeforce404 D. Minesweeper 1D DP递推

给定一个一维矩阵,其中包含‘1’、‘2’、‘0’、‘*’、‘?’,扫雷小游戏——1表示左右有一个雷,2表示左右都有雷,0表示左右都没有雷,*表示雷,?表示未知,求其中有多少种可能的情况,若该图自相矛盾也输出0表示档期位置为L,当前位置若是雷则为1,否则为0,下一位置若是雷则为1,否为0递推时需要判断:根据不同情况分类讨论#include<bits/stdc++.h>us...

2018-10-21 14:15:33 223

原创 codeforce612 E. Wet Shark and Blocks 矩阵快速幂加速DP

codeforce612 E. Wet Shark and Blocks有b个块,每个块中有相同的n个元素,在每个块中取1个元素,使这b个数所组成的b位整数%x==k,求此方法数在第一个块中取a,a'=a%x,第二个块中一个元素与a'所组成的数为b=a'*10+b,b'=b%x以此类推,最终可得到模最后几位得到k的状态转移方程:类似邻接矩阵的n次方,某个点的值表示达到这个点的方案数...

2018-10-21 14:06:15 193

原创 Junit反射测试私有函数

导入包:Java.lang.Classimport java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import org.junit.Test;Class clazz = Class.forName(""package"."java"");/...

2018-10-20 10:03:09 549

原创 codeforce884 D. Boxes And Balls 构造哈夫曼树求解合并最小费用

codeforce884 D. Boxes And Balls给定n个球,每个球有一定价值,求将其按照价值的分类的最小价值逆过程:将n个一定价值的球合并到一起的最小费用,构造哈夫曼树:带权路径长度最短的树,权值较大的结点离根较近#include<bits/stdc++.h>using namespace std;const int MAX=2e5+5;int n;...

2018-10-18 10:25:39 335

原创 2014西安区域赛

2014西安区域赛K.Last Defences参考题解给定两个数A,B(<1e18)S0=A,S1=B,Si=| Si-1- Si-2 |,求Si不同值的个数假设A=11,B=3,简单计算可得序列S:11,3,8,5,3,2,1,1,0,1,0~仔细观察可以看出:8=11-1*3,5=11-2*3,2=11-3*3,3出现的次数为11%3-1,产生的新数字个数为A/B...

2018-10-17 20:53:51 306

原创 codeforce895 D. String Mark 有重复元素的排列数

codeforce895 D. String Mark给定两个相同长度的字符串S1和S2,求由S1重新排列产生S3,且字典序(S1<S3<=S2)的种类数不同的题解我的题解:O(NlgN)分别统计字典序小于S2和小于S1的排列数,Ans=Ans2-Ans1-1(不能与S1相同)有重复元素的排列数:sum表示元素总数,cnt[]表示元素个数统计S1中每个字符串...

2018-10-17 17:52:19 264

原创 codeforce 961 F. k-substrings 字符串多重Hash

codeforce 961 F. k-substrings给定一个字符串,每次在串的两边减去一个字符求其每次减去之前最长的L(前缀==后缀)hash 10次 减小冲突#include<bits/stdc++.h>using namespace std;const int MAX=1e6+5;const int HASH=10;int AC[HASH]={131,1...

2018-10-16 16:53:52 239

原创 POJ 3974 Palindrome Hash+二分

POJ 3974 Palindrome求最长回文子串的长度#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int MAX=1e6+5;const long long P=131;long long power[MAX],ha1[M...

2018-10-15 21:13:22 308

原创 codeforce1064 D. Labyrinth 双端队列 决策优化

codeforce1064 D. Labyrinth给定矩阵,*表示障碍,向左最多L步向右最多R步,求其所有可能能到达的点的个数双端队列 决策优先性#include<bits/stdc++.h>using namespace std;const int MAX=2e3+5;int n,m,a,b,c,d,ans;char s[MAX][MAX];struct P...

2018-10-14 22:03:13 280

原创 POJ2279 Mr. Young's Picture Permutations 线性DP

POJ2279 Mr. Young's Picture Permutations给定一个三角形,将n个身高不同的人按照左低右高、前低后高的排列,且行列都满足递增条件,求组成这样的三角形的个数dp[a][b][c][d][e] 表示第1排a人2排b人3排c人4排d人5排e人的方案数,每次加人的可行方案都是在原有队形轮廓上#include<stdio.h>#include&...

2018-10-14 13:37:47 364

原创 codeforce617 E. XOR and Favorite Number 异或 莫队

E. XOR and Favorite Number求区间内连续区间异或运算为K的区间对数预处理异或前缀 当 b[r]^K=b[l-1]时区间r~l的值为Kcnt[i]记录 所在区间内值为i的个数 若i^K=l/r 则相应加减 , 其中l的值为给定的l -1 因为在区间l~r内 b[r]对答案没有贡献#include<bits/stdc++.h>using name...

2018-10-11 22:18:03 185

原创 codeforce1059 E. Split the Tree 树状数组+2遍DFS

codeforce514 E. Split the Tree划分一棵以1为根的树,每个划分中不超过L个节点,边的权重不超过S在DFS1的同时树状数组以深度维护该节点到根节点的权值之和,每次二分查找路径上他能到达最远的一个节点,DFS2找出最小划分#include<bits/stdc++.h>using namespace std;const int MAX=1e5...

2018-10-06 19:27:41 452

原创 codeforce514 D. Nature Reserve 凸函数三分

算法 三分法codeforce514 D. Nature Reserve给定若干个点,求包含所有点且与x轴相切的圆的最小半径#include<bits/stdc++.h>using namespace std;const int MAX=1e5+5;const double eps=1e-8;int n;pair<double,double>a[MA...

2018-10-06 16:14:41 483

原创 牛客国庆集训派对Day2 平衡二叉树 DP找规律

牛客国庆集训派对Day2 平衡二叉树求最小深度差为d的平衡树的最少节点数#include<bits/stdc++.h>using namespace std;const int MAX=61;int n,d;long long dp[MAX];int main(){ scanf("%d%d",&n,&d); long long l=...

2018-10-03 12:40:19 253

原创 牛客国庆集训派对Day1 Princess Principal

牛客国庆集训派对Day1 Princess Principal求区间内的括号串是否符合条件预处理括号串,a[i]记录当长度为i时的不符合长度(前缀),查询时比较a[l-1]和a[r]是否相同即可#include<bits/stdc++.h>using namespace std;const int MAX=1e6+5;int a[MAX],L,R,n,m,K;pa...

2018-10-01 18:04:20 378

空空如也

空空如也

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

TA关注的人

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