自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 子串的最大差

对于每个数计算它的贡献。贡献分为两部分,一部分是作为最大值,一部分是作为最小值。当a[i]作为最大值,你要找到它左边第一个大于等于(可能存在连续相等的数,避免重复左闭右开)他的数位置l和右边第一个比他大的数位置r,那么当前树的贡献是a[i] * (i-l)* (r-i)。最小值同理不过是减去。给你一个数组,求所有区间的(最大值-最小值)的和。这里介绍两种寻找每个数的l,r的方法。

2022-12-08 14:58:50 119 1

原创 字符串匹配进阶

A位模式串,长度为n;B为文本串,长度为m。1.没有通配符的调整匹配函数——和上述没有通配符的相同,但是我们要去掉通配符位置的贡献。将原字符串是通配符的值设为0,再修改完全匹配匹配函数为P(x)=∑i=0m−1(S[m−i−1]−B[x−m+i+1])2S[m−i−1]B[x−m+i+1]P(x) =\displaystyle \sum^{m-1}_{i=0} (S[m-i-1] - B[x-m+i+1])^2S[m-i-1]B[x-m+i+1]P(x)=i=0∑m−1​(S[m−i−1]−B[x−m+i+

2022-12-08 14:58:10 145

原创 数位DP套路模板

显然,是一种DP。再显然,是一种关于每一位数字之间关系(性质)的DP题目描述一般是求【L,R】范围内满足各位数字间存在某种规律的数有几个数位DP的题目数据范围往往很大,动不动就是1e18,但是由于是数位DP只跟位数有关,所以也就18位。使用记忆化搜索进行DP因为会出现重复出现的状态,使用记忆化搜索可以减少重复的搜索,减少复杂度。​ 从起点向下搜索,搜索的途中累加每一位的答案,最后在起点得到答案。​ 对于[L,R]的区间问题,一般我们可以根据前缀和相减转化为[0,R] - [0,L-1]的问题。pos, 当

2022-12-08 14:56:12 169

原创 树形DP常见基本题型

**题意:**求选择的点的权值和最大。限制条件:若父节点被选,子节点不能被选状态机模型,不过不能用循环枚举顺序,用树上dfs递归的方式进行枚举。代码Computer**题意:**求每个点与其他任意一点的最远距离给的是一棵树,每个节点都有且只有一个父亲。且本题节点1是根节点。对于一个节点他的最远距离有两种然后这两种取最大值代码Strategic game**题意:**给你一幅图,要求每条边至少一个端点为1,求所有端点权值和最小值。也是状态机加上dfs的递归顺序。从根节点开始先递归在DP计算,这样最

2022-12-08 14:54:11 144

原创 三角果计数

我们枚举的是其中两个点的最近公共祖先,然后在他的两个子树中各选一个作为其中两个点,那么第三点的数量就是除了这两棵子树和这个点以外的所有点。当三个点在同一条链上时,他们的最短路始终满足较小两边加起来等于第三边,不满足三角形。求一个数上有几种三点的集合,他们两两的最短路能形成一个三角形。我们枚举两个点,看有多少个第三点满足条件。

2022-12-08 14:51:10 104

原创 基尔霍夫矩阵

1)无向图 𝐺:给定 𝑛 个点,𝑚 条边的无向图,设点集为 𝑉,边集为 𝐸,则其记为 𝐺(𝑉,𝐸)2)度数矩阵 𝐷[𝐺]:当 𝑖≠𝑗 时,𝐷[𝑖][𝑗]=0,当 𝑖=𝑗 时,𝐷[𝑖][𝑗]=点𝑣的度数3)邻接矩阵 𝐴[𝐺]:当 𝑣𝑖、𝑣𝑗 有边连接时,𝐴[𝑖][𝑗]=1,当 𝑣𝑖、𝑣𝑗 无边连接时,𝐴[𝑖][𝑗]=04)基尔霍夫矩阵(Kirchhoff) 𝐾[𝐺]:也称拉普拉斯算子,其定义为 𝐾[𝐺]=𝐷[𝐺]−𝐴[𝐺],即:𝐾[𝑖][𝑗]=𝐷[𝑖][𝑗]−𝐴[𝑖][𝑗]

2022-12-08 14:50:11 713

原创 高斯消元学习笔记

就是求解矩阵的过程。把矩阵转化成一个上三角或者下三角的形式,那么只需要把对角线上的元素相乘就可以 O(n)O(n)O(n) 得到矩阵的值。如何把矩阵转化成上三角或下三角呢,线性代数告诉我们把第i行的每个元素加上第j行对应的每个元素的k倍,原矩阵大小不变。(同理可以消除列)判断解的情况:a) 如果出现某一行,系数矩阵全为0,增广矩阵不全为0,则无解(即出现[0 0 0 0 0 b],其中b不等于0的情况)(转化为方程就是说 0×x1+...+0×xn=b(b≠0)0 \times x_1 + ...+0 \t

2022-12-08 14:48:31 97

原创 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 K金牌厨师

Phenix作为金牌厨师对每天工作的满意程度定义为选出的同学的人数kk和能让这部分同学都接受的菜的种类数xx(这里理解为一种辣度对应一种菜)两者中的最小值,即min(k,x)。Phenix作为食堂的金牌厨师,每天的工作是为同学们准备饭菜,Phenix做出的每一种菜都有一个辣度值,范围是[1,n][1,n]。作为厨师,Phenix提前了解了m位同学的辣度接受范围,第i位同学的辣度接受范围被描述为。第一行两个整数n,m,表示菜的辣度最大值和同学的人数(1

2022-12-08 14:44:23 269

原创 2021上海ICPC--H.Life is a Game--Kruskal重构树--铜牌拦路虎

Kruskal 重构树是图的一种生成树,主要解决路径边权限制问题。Kruskal 重构树有按深度单调的性质,所以很容易就可以解决边权的取值限制。

2022-12-08 14:42:58 144

原创 namomo week1

转移方程dp[i][j] = dp[i][j-1],dp[i][j] = max(dp[i][j], dp[i][k]+dp[k+1][j-1]+1),k满足k>=i,且a[k]==a[j].对于k直接枚举区间[i,j]会超时,题目保证每个数最多出现20次,我们只需要预处理出上一个等于a[i]的位置的pre[i]就能保证k最多枚举20次,复杂度为20。都存在两个点u,v,这个点在u,v的简单路径上,且e[u]>=a[i]且e[v]>=a[i]。最后dp[u][1] = dp[u][0] + a[u]

2022-12-08 14:41:56 187

原创 VP Codeforces Round #691 (Div. 2)

有n张牌,有红蓝两个数字(个位),对于一个排列,红蓝分别组成一个n位数,哪个数字大则谁赢,相同的话打平。问最后红蓝两方谁赢的概率更大。每张牌的红蓝数字是绑定的,我们只需要统计每张牌红数字更大和蓝数字更大的个数,最后看哪种情况更多即可。B. Move and Turn题意你当前在(0,0)你可以走n步,每次选择上下左右其中一个方向,但是相邻两步不能是同一条线,必须要垂直。即上一步走了左右,这一步必须走上下;上一步走了上下,这一步必须走左右。问n步后能到达的点有几种可能,因为上下和左右交替进行,则n为偶数

2022-07-17 23:18:45 443

原创 Codeforces Round #721 (Rated for Div2)

受刺激了,肝他丫的A. And Then There Were K题意:给你一个n,求???? & (????−1) & (????−2) & (????−3) & … (????) = 0 k的最大值思路打表将原来的数转化为二进制后,首先第一位想要变成0,一定要&一个二进制位数少一的数,然后从j位减小到j-1位一定会&上100…000(j-1个0,共j位),此时除了第一位别的一定是0,再&上一个j-1位的数即可让首位为0,j-1位最

2021-05-21 01:34:14 765 12

原创 Educational Codeforces Round 108 (Rated for Div. 2) ABCD

A. Red and Blue Beans题意:给你r个红豆,b个蓝豆,还有一个数d。将豆分在若干个盒子里。保证每个盒子里至少有一个红豆和一个蓝豆,且他们的数量差小于等于的d。思路:看较少的豆最多能匹配较多豆几个,如果实际大于最多可匹配的话就输出NO,反之YES。代码#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include <algorit

2021-04-30 10:12:37 227 1

原创 Educational Codeforces Round 107 (Rated for Div. 2) ABCD

A. Review Site题意给你n个数,是n个人的评价,1是好评,2是差评,3是哪个多选哪个。但是你有两个服务器,你可以控制用户进入指定服务器。求最多可以得到多少个好评。思路只要让所有好评到第一个服务器,所有差评到第二个服务器,评价为3的人都到第一个服务器。答案就是1和3的数量。代码#include<iostream>#include<cstring> #include<cmath>#include<stack>#include<al

2021-04-14 16:06:05 144

原创 codeforces div2 714 ABC

A. Array and Peaks题意给你n,k;输出一个长度为n,包含k个峰的序列(1至n每个数字只出现一次),不存在输出-1.思路首先长度为n的序列最多有(n-1)/2个峰,如果k>(n-1)/2那么输出-1。其余的在i的位置(i%2==0&&1=<i<=n)依次放置最大值。再在空白的位置从小到大依次排放没使用过的数字。或者在原本1到n有序的序列上交换第i个和第i+1个(i%2==0&&1=<i<=n)代码#inclu

2021-04-14 13:07:58 125

原创 codeforces 713 div3 ABCD

A.Spy Detected!题意给你n个数,其中n-1个数相同,找到另一个不同的数,输出它的下标。思路数据量很小直接扫一遍就好。代码#include<iostream>#include<cstring> #include<cmath>#include<stack>#include<algorithm>#include<map>#include<vector> #include<queue>

2021-04-13 16:26:14 121

原创 codeforces 712 div2 ABC

codeforces 712 div2 ABCA. Déjà VuA palindrome is a string that reads the same backward as forward. For example, the strings “z”, “aaa”, “aba”, and “abccba” are palindromes, but “codeforces” and “ab” are not. You hate palindromes because they give you déj

2021-04-04 16:55:28 327

空空如也

空空如也

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

TA关注的人

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