自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LCA(最近公共祖先)模板

LCA模板

2022-07-14 18:52:13 92 1

原创 Pollard-rho(大整数质因子分解)

vector<ll> fac;ll quick_mult(ll a, ll b, ll mod) { ll ans = 0; while(b) { if(b & 1) ans = (ans + a) % mod; a = (a + a) % mod; b >>= 1; } return ans;}ll quick_pow(ll a, ll n, ll mod) { ll ans =

2021-11-06 13:24:04 218

原创 dsu on tree(树上启发式合并)

需要合并子树信息时,暴力解法复杂度为O(n^2),dsu on tree可以做到将复杂度降低为O(nlogn)。主要思想:例题 现在有一棵树,每个节点涂有一个颜色。需要统计每颗子树上哪种颜色最多。算法流程:1. 另外写dfs找到各节点重儿子;2. 统计轻儿子信息,记录答案;3. 统计重儿子信息记录答案,并保留信息。4. 将轻儿子信息加入记录;5. 加入父节点信息,统计答案。int n;//size of treevector<int> tree[maxn];int colo

2021-11-02 11:58:01 176 2

原创 矩阵快速幂

const ll mod = 1e9+7;const int maxn = 1e3+5;ll a[maxn][maxn],b[maxn][maxn],c[maxn][maxn];void mulaa(int n){ memset(c,0,sizeof(c)); for(int ii=1;ii<=n;ii++){ for(int jj=1;jj<=n;jj++){ ll tp=0; for(int i=1;i<=n;i++){ tp+=((a[ii][i]%

2021-10-27 16:20:37 73

原创 后缀数组(求字符串后缀字母序大小排行)

//时间复杂度O(nlogn)const int maxn = 1e6+5;int n,m,rk[maxn],tp[maxn],sa[maxn],num,tax[maxn];char s[maxn]; //字符串从1开始void Rsort(){ for(int i=0;i<=m;i++)tax[i]=0; for(int i=1;i<=n;i++)tax[rk[tp[i]]]++; for(int i=1;i<=m;i++)tax[i]+=tax[i

2021-10-25 19:39:11 92

原创 一维差分、二维差分

一维int a[maxn],b[maxn];void insert(int l,int r,int c) //[l,r]同时加c{ b[l]+=c; b[r+1]-=c;}二维int a[maxn][maxn], b[maxn][maxn];void insert(int x1,int y1,int x2,int y2,int c) //[x1,y1] - [x2,y2]同时加c{ b[x1][y1] += c; b[x1][y2+1] -=c; b[x

2021-10-03 19:33:17 72

原创 主席树(区间第k小)

const int maxn = 2e5+5;int cnt;struct node{ int L, R;//分别指向左右子树 int sum;//该节点所管辖区间范围内数的个数 node(){ sum = 0; }}Tree[maxn * 20];int root[maxn];//多颗线段树的根节点void init() { cnt = 1; root[0] = 0; Tree[0].L = Tree[0].R = Tr

2021-10-01 16:07:02 84

原创 中国剩余定理

注意排除不可行的答案:ll exgcd(ll a,ll b,ll &x,ll &y) { if(b == 0) { x = 1,y = 0; return a; } else { ll res = exgcd(b,a%b,x,y); ll t = x; x = y; y = t - a / b * y; return res; }}ll excrt(ll m1,ll m2,ll a1,ll a2) { //m为余数 ll x,y,c,g; c =

2021-09-28 14:13:07 51

原创 排列组合模板C(m,n)

const ll mod = 998244353;const ll maxn = 1e5+5;ll f[maxn],inv[maxn];ll qpow(ll a,ll b){ ll ans=1; while(b) { if(b&1)ans=ans*a%mod; a=a*a%mod; b>>=1; } return ans%mod;}void init(){ f[0]=inv[0]=1; for(ll i=1; i<maxn; i++) {

2021-07-16 17:08:19 307

原创 逆元

求解n关于m的逆元( n*x = 1 mod m );int exgcd(int a,int b,int &x,int &y){ if(b==0) { x=1,y=0; return a; } int r = exgcd(b,a%b,x,y); int t = x; x = y; y = t - a/b*y; return r;}int inv(int n,int m){

2021-05-18 15:12:24 84

原创 ST表(静态区间最值)

int a[maxn];int maxsum[maxn][20],minsum[maxn][20];void RMQ(int num){ //共num个数 for(int i=1;i<=num;i++) maxsum[i][0] = minsum[i][0] = a[i]; for(int j=1;j<20;j++){ for(int i=1;i<=num;i++){ if(i+(1<<j)-1 &l

2021-04-26 12:32:12 126 1

原创 线段树(动态区间最值)

const int inf = 0x7fffffff;const int maxn = 2e5 + 10;int a[maxn];int tree[maxn << 2], lz[maxn << 2];inline int max(int a, int b) { return a > b ? a : b; }void build(int i, int l, int r) { //建树操作,初始化时应将i置为1 if (l == r) { t

2021-04-25 22:00:35 173

原创 求单个整数质因数个数(无重复)

用于计算单个整数的质因数个数,无视重复的质因数。const int maxv = 2e7+5; //注意修改maxv数值int mind[maxv],val[maxv];void init(){ for(int i=1;i<maxv;i++) mind[i] = -1; mind[1] = 1; for(int i=2;i<maxv;i++){ if(mind[i] == -1){ for(int j=i;j<=maxv

2021-03-21 15:50:52 254

原创 快速幂模板

int quick_pow(int a,int b){ int ans = 1; for(int i = 0;i < b;i++){ ans *= a; } return ans;

2021-03-09 20:13:06 64

原创 并查集模板

int fa[maxn];int find(int x){ return x==fa[x]?x:fa[x]=find(fa[x]);}void unit(int u,int v){ int xx = find(u); int yy = find(v); if(xx != yy){ fa[xx] = yy; }}

2021-03-07 16:07:46 75

原创 codeforces #704 div2(4/5)

A. Three swimmers先分别计算出对于a、b、c在你到达后,并且他们到达原点的时间。比如对于a,在你到达后他正好游完了a/p个来回,此时使用进一法,ta = (a+p-1)/p,即为你到达后a到达原点的时间.最后答案ans = min(ta,tb,tc);代码:#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<stri

2021-02-24 20:44:22 71

原创 线性筛模板(筛取从1-n的素数)

线性筛const int maxn = 1e5+5; //注意修改maxn数值int vis[maxn],prime[maxn],tol;void liner_shai(){ memset(vis,0,sizeof(vis)); for(int i=2;i<maxn;i++){ if(!vis[i]) prime[tol++] = i; for(int j=0;j<tol&&i*prime[j]&lt

2021-02-22 20:55:41 111

原创 ssm链接mysql时中文数据全部变为?的问题

这次的问题又坑了我几个小时,起因是我在做java后端时数据库内的中文数据全部变为了?。这里需要注意的是,在sping链接mysql时url后缀应该加上相应的编码形式。代码:jdbc.url=jdbc:mysql://xxx.x.x.x:xxxx/myblog?useUnicode=true&characterEncoding=UTF-8其中xxx.x.x.x:xxxx为服务器IP与端口号,myblog为将要链接的数据库名称。...

2021-01-27 21:19:54 135 1

原创 线段树模板

注意每次测试数据后的数据清空//单点修改为直接修改,区间修改为一起加某值struct Node{ int l,r; int lazy,sum;}Sum[MAXN<<2]; //树int num[MAXN]; //原数组(下标从1开始)void update(int index){ //区间和计算函数 Sum[index].sum = Sum[index<<1].sum+Sum[index<<1|1].sum;}void bu

2021-01-14 18:20:40 126

原创 maven分模块进行分层时载入配置文件需要注意的点

在maven分模块分成配置后进行发布后出现了controller层中的service无法自动注入的问题。排查后发现是service层和dao层的spring配置文件没有成功配置,在web层的web.xml中应注意:classpath:只会查找本模块中resources下的文件,而其他模块的不会进行查找.此时应将classpath:改为classpath*:classpath*:会自动去寻找本模块及依赖的jar包中的resources下的文件,这样才能正确配置service层和dao层的spring

2021-01-13 19:47:04 207

原创 Mybatis中mapper标签中配置子标签package的坑

首先java目录下的.java文件和resources下的.xml文件必须要在同一目录下,但是在resource中创建目录时不要顺手像在java文件中创建包一样,直接创建了com.mapper文件夹,这样不是创建了com - mapper两个文件夹,而是创建了一个叫做com.mapper的文件夹!!!这样会导致.java文件和.xml文件位置不同,这个位置坑了我一个小时,希望各位注意一下。...

2021-01-12 01:32:06 501 1

原创 巴什博弈

巴什博弈有一堆数量为n的石子,每个人每次可以取1~m颗石子,最先取完的一方胜利。结论若n%(m+1)==0则先手必败,反之先手必胜。(以下所有均以双方足够明智作为前提)巴什博弈为博弈论中最基础的部分,据此可以推算出博弈论中的通用方法:对于每个点,可以分为两种属性,分别为:P点: 状态处于该点时将要进行操作的玩家必定失败;N点: 状态处于该点时将要进行操作的玩家必定成功。存在三个定理:1. 所有终结点都是必败点P(上游戏中,轮到谁拿牌,还剩0张牌的时候,此人就输了,因为无牌可取);2.

2021-01-07 00:33:14 1099

原创 斐波拉契博弈

斐波拉契博弈:有一堆个数为n的石子,游戏双方轮流取石子,同时有一下规则:1.先手不能直接把石子全部取完;2.除了第一次,之后每次取石子的数目只能在1到上次取石子数的两倍之间(包括边界)。无石子可取即为失败。结论:若初始时石子数为斐波拉契数则先手为必败态,反之先手必胜。证明:主要可以看博客https://blog.csdn.net/ACM_cxlove/article/details/7835016。...

2021-01-06 01:59:58 105

原创 SG函数

SG函数主要性质:1、所有终结点都是必败点;2、必败点P无论怎么操作只能进入必胜点N;3、至少有一种操作使可以从必胜点N到达必败点P。其中定义mex(minimal excludant)运算,其为集合运算,即为计算该集合中不存在的最小非负整数。例如: mex({0,2,3}) = 1; mex({1,2,3,4,5}) = 0;而SG[x]含义即为在x的状态下有多少个后继状态,对所有后继状态的SG值进行mex运算,结果即为SG[x]的值。多个SG游戏的最终结果为每个SG函数值的异或和,异或和

2021-01-02 01:03:45 740

原创 Nim博弈

目前有任意堆石子,每堆石子个数也是任意的,双方轮流从中取出石子,规则如下:  ①每一步应取走至少一枚石子;每一步只能从某一堆中取走部分或全部石子;  ②如果谁取到最后一枚石子就胜。设(a,b,c,d…)为每堆石子的个数(石子个数>=0),甲乙两人游戏,且甲先行。若起始态a⊕b⊕c⊕… = 0,则该状态为必败态,反之为必胜态。Nim博弈结论证明:明显当a1=a2=……=an = 0的时候成立,(0)为必败态。当(a1,a2……an)不全等于0的时候,有2种情况:  ① k = a1⊕a2⊕

2021-01-02 00:57:04 581 1

原创 威佐夫博弈(HDU1527)

威佐夫博弈主要内容:有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。主要思路:将两堆物品中较少的一堆数量记作a,另一个记作b。存在必败态(奇异点):(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)…存在固定公式a ==(b-a)(sqrt(5.0+1)/2.0)时先手为必败态(奇异点)。具体代码: int aa,bb; cin>&gt

2020-12-31 23:31:34 133

原创 短学期实践计划//杭电OJ(2602)

**Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 116650 Accepted Submission(s): 46848Problem DescriptionMany years ago , in Teddy’s hometown there was a man who was called “Bone

2020-07-14 16:04:28 147 1

原创 短学期实践计划//杭电OJ(1085)

**Holding Bin-Laden Captive!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29847 Accepted Submission(s): 13001Problem DescriptionWe all know that Bin-Laden is a notorious terrorist, and he has

2020-07-13 16:14:31 151

原创 短学期实践计划//算法:快速幂

计算pow(a,b)时,当b的数字过大,运算用时就会非常的长,快速幂的目的是将时间复杂度为O(n)的幂计算优化为O(log n).快速幂主要是通过将计算a的n次方的问题中的n用二进制表示,将其分割为更多的小部分来完成更小的任务。例子:标准代码:long long binpow(long long a, long long b) { long long res = 1; while (b > 0) { if (b & 1) res = res * a; a =

2020-07-12 15:42:53 91

原创 短学期实践计划//杭电OJ(1077)

**Catching FishTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3125 Accepted Submission(s): 1158Problem DescriptionIgnatius likes catching fish very much. He has a fishnet whose shape is a cir

2020-07-12 02:04:20 148

原创 短学期实践计划//杭电OJ(1022)

**Train Problem ITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 59223 Accepted Submission(s): 22141Problem DescriptionAs the new term comes, the Ignatius Train Station is very busy nowadays. A

2020-07-10 14:10:46 132

原创 短学期实践计划//杭电OJ(1002)

**A + B Problem IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 527153 Accepted Submission(s): 100781Problem DescriptionI have a very simple problem for you. Given two integers A and B, your

2020-07-07 22:10:59 100

原创 短学期实践计划//杭电OJ(1020)

EncodingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 66684 Accepted Submission(s): 29657Problem DescriptionGiven a string containing only ‘A’ - ‘Z’, we could encode it using the following me

2020-07-07 21:18:31 207

原创 短学期实践计划//杭电OJ(1018)

**Big NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50667 Accepted Submission(s): 24808Problem DescriptionIn many applications very large integers numbers are required. Some of these ap

2020-07-04 02:20:01 90

原创 短学期实践计划//杭电OJ(1009)

FatMouse’ TradeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 119147 Accepted Submission(s): 41165Problem DescriptionFatMouse prepared M pounds of cat food, ready to trade with the cats guardi

2020-07-04 02:02:05 204

原创 短学期实践计划//杭电OJ(1010)

Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 176965 Accepted Submission(s): 47086Problem DescriptionThe doggie found a bone in an ancient maze, which fascinated him a lot.

2020-07-03 03:06:01 140

原创 短学期实践计划//杭电OJ(1003)

**Max Sum(难度:1)Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Problem DescriptionGiven a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max su

2020-07-03 00:34:35 151

原创 2020暑期算法训练计划

来到了大一的暑假,今天就要立一下关于暑假安排的flag了。首先是参与每次cf div.2,有价值的题可以写blog记录下来。每天下午7点要进行至少两小时的算法题训练,复习包括BFS,DFS,DP,贪心等之前算法。主要刷题靠网上找到的杭电oj刷题顺序进行,后续有更多的计划我会持续跟进。...

2020-07-01 14:44:54 190

空空如也

空空如也

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

TA关注的人

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