自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯2021国赛-异或三角

蓝桥杯2021国赛-异或三角

2022-06-06 22:13:53 628 1

原创 Codeforces Round #796 (Div. 2) F. Sanae and Giant Robot

Codeforces Round #796 (Div. 2) F. Sanae and Giant Robot

2022-06-05 19:14:06 230

原创 CodeCraft-22 and Codeforces Round #795 (Div. 2) F. K-Set Tree

CodeCraft-22 and Codeforces Round #795 (Div. 2) F. K-Set Tree

2022-06-02 22:23:52 232

原创 CodeCraft-22 and Codeforces Round #795 (Div. 2) E. Number of Groups

CodeCraft-22 and Codeforces Round #795 (Div. 2) E. Number of Groups

2022-06-02 19:40:27 235

原创 CodeCraft-22 and Codeforces Round #795 (Div. 2) D. Max GEQ Sum

CodeCraft-22 and Codeforces Round #795 (Div. 2) D. Max GEQ Sum

2022-06-02 19:12:02 285

原创 Educational Codeforces Round 129 (Rated for Div. 2) F. Unique Occurrences

Educational Codeforces Round 129 (Rated for Div. 2) F. Unique Occurrences

2022-05-31 21:47:27 127

原创 牛客挑战赛57:C-树上行走(树剖)

题目链接题意题解先树剖,设 a[x]a[x]a[x] 向父节点传递次数记为 c[x][0]c[x][0]c[x][0](树状数组即可),a[x]a[x]a[x] 向子节点(子节点是一条链上的子节点)传递次数记为 c[x][1]c[x][1]c[x][1]。那么还存在非链上的子节点,用 ans[x]ans[x]ans[x] 记录,即当 xxx 向上跳的时候,ans[f[tp[x]]]+=a[tp[x]];ans[f[tp[x]]]+=a[tp[x]];ans[f[tp[x]]]+=a[tp[x]];

2022-02-20 18:18:48 507 3

原创 Codeforces-1625D:Binary Spiders(Trie树优化DP)

题目链接题意给出 nnn 个整数,选出尽可能多的数,被选出的数必须满足两两异或不小于 kkk题解首先要知道 nnn 个数中任选 222 个数异或的最小值一定等于:将这 nnn 个数排序后,所有相邻 222 个数的异或值中的最小值。如何证明呢?我只需要证明从 nnn 个数中取任意 333 个正整数 a,b,c(a<b<c)a,b,c (a<b<c)a,b,c(a<b<c) (等于的情况不需考虑),均满足 a⨁b<a⨁ca⨁b<a⨁ca⨁b<a⨁c

2022-02-20 18:00:02 199 3

原创 树状数组--简单讲解

C[1]=A[1];C[1]=A[1];C[1]=A[1];C[2]=A[1]+A[2];C[2]=A[1]+A[2];C[2]=A[1]+A[2];C[3]=A[3];C[3]=A[3];C[3]=A[3];C[4]=A[1]+A[2]+A[3]+A[4];C[4]=A[1]+A[2]+A[3]+A[4];C[4]=A[1]+A[2]+A[3]+A[4];C[5]=A[5];C[5]=A[5];C[5]=A[5];C[6]=A[5]+A[6];C[6]=A[5]+A[6];C[6]=A[5]+.

2022-01-14 21:29:43 66

原创 2021 46届icpc 南京

文章目录A. Oops, It’s Yesterday Twice MoreC. Klee in Solitary ConfinementD. Paimon SortingH. CrystalflyM. Windblume Festival题集官方题解A. Oops, It’s Yesterday Twice MoreA签到题,判断离哪个角近,先走到角上再走到 (a,b)(a,b)(a,b),直接分类讨论#include<bits/stdc++.h>using namespace

2021-12-21 00:28:49 3864

原创 网络最大流-Dinic算法

问题描述给定 nnn 个点,mmm 条有向边,给定每条边的容量,求从点 sss 到点 ttt 的最大流。推荐博客反向边作用bfsbfsbfs分层优化-Dinic网络流其他更强优化算法思路反向边的反悔作用:以上为 FFFFFF 算法,DinicDinicDinic 使用 bfsbfsbfs 分层优化:bfsbfsbfs 分层,使每次增广只能从当前层流向下一层,避免 dfsdfsdfs 寻找增广路使乱跑增加复杂度(正确性:只要能流向汇点必然存在增广路,必然能分层;最后止于没有增广路)df

2021-12-14 00:04:19 441

原创 Tarjan 算法

解决问题Tarjan 算法是图论中非常实用 / 常用的算法之一,能解决强连通分量(有向图两点互打),双连通分量(任意两点存在至少两条"边不重复"的路径的图),割点和桥,求最近公共祖先(LCA)等问题。求强连通分量一些定义搜索树:以某一个节点 x 出发进行深度优先搜索,每一个节点只访问一次,所有被访问过的节点与边构成一棵树时间戳 dfndfndfn :标记图中每个节点在进行深度优先搜索时被访问的时间顺序追溯值 lowlowlow :搜索树中 dfndfndfn 最小值有视频好理解算法思想处

2021-11-26 16:28:23 427

原创 拉格朗日(Lagrange)插值

问题给定 nnn 个点,可确定一个多项式 y=f(x)y=f(x)y=f(x) ,要求确定这个多项式并求出 f(k)f(k)f(k)拉格朗日(Lagrange)插值公式搬运令 Ln(x)=f(x)L_n(x)=f(x)Ln​(x)=f(x)n=1有由点斜式可以得到其中这里 lk(x)l_k(x)lk​(x) 和 lk+1l_{k+1}lk+1​ 称作线性插值基函数。n=2有构造易得一般情况Ln(x)=l0(x)∗y0+l1(x)∗y1+l2(x)∗y2+...

2021-11-19 18:56:43 1474

原创 Codeforces Round #754 (Div. 2) D. Treelabeling

题目链接分析一种构造方法是,使相邻层不可达对 (u,v)(u,v)(u,v),若二进制下最高位不同,则满足 u⊕v>min(u,v)u⊕v>min(u,v)u⊕v>min(u,v),则 u,vu,vu,v不可达因此,将最高位相同的数放入奇///偶层,相邻层最高位不同不可达代码#include<bits/stdc++.h>#define pb push_backusing namespace std;const int N=2e5+9;int T,n;int

2021-11-16 21:59:18 198

原创 二分图-匈牙利&KM算法

匈牙利算法问题解决二分图最大匹配问题。思想不断寻找原有匹配 MMM 的增广路径以增大匹配数。对每次匹配左边点 xxx,不断通过右边点 yyy 跳到左边 yyy 的对象点 x∗x*x∗,直至 xxx 右边点 yyy 没有对象。代码模板#include<bits/stdc++.h>#define pb push_backusing namespace std;const int N=509;int n,m,e,ans;int vis[N],t[N];vector<i

2021-11-12 19:35:51 401

原创 多区间选点,之和一定

问题描述有多个区间 [l,r][l,r][l,r] ,在每个区间选一个点使得各点之和为 XXX思路每个区间选一个点组成的 xxx 的范围为 [[[ ∑i=1nli\sum_{i=1}^{n}{l_i}∑i=1n​li​ , ∑i=1nri\sum_{i=1}^{n}{r_i}∑i=1n​ri​ ]]],若所求 XXX 在此区间则可达而后从后往前反推求出一组解步骤lil_ili​ rir_iri​ X=10X=10X=101 31 52 31. 令 Li=L_i=Li​= ∑j=1il

2021-11-08 21:40:06 74

原创 凸包-笔记

思路1. 先找到左下角点,根据该点给其他点按极角排序bool cmp(Pdb x,Pdb y) //按极角排序 { DB b=atan2(x.se-a[1].se,x.fi-a[1].fi); DB c=atan2(y.se-a[1].se,y.fi-a[1].fi); if(b!=c) return b<c; if(x.fi!=y.fi) return x.fi<y.fi; return x.se<y.se;}2. 将前两个先加入栈中,对后面每个,根据叉积判断当前栈

2021-11-08 21:09:48 101

原创 高斯消元-异或版

题目2020icpc济南-A-Matrix Equation思路矩阵 A 与答案每列乘积异或和互不干扰,故对每列分别求解,等式右边化为 0找到当前处理的未知数为 1 的行,交换,对之后该未知数为 1 的行整行异或,化为上三角求出解代码#include<bits/stdc++.h>#define LL long long#define mod 998244353using namespace std;const int N=209;int n;LL ans=1LL;LL

2021-11-07 21:21:53 561

原创 高斯消元-基础版

思想将矩阵化为上三角后从下向上求出每个解步骤1. 每次找到最大系数行(减小误差)1 -8/7 10/7 34 -5 6 121 -2 3 62. 将该系数化为11 -8/7 10/7 34 -5 6 121 -2 3 63. 将后面行该列系数化为01 -8/7 10/7 30 -3/7 2/7 00 -6/7 11/7 34. 经过 nnn 此操作矩阵化为一个上三角,从 nnn 行回代求解每个未知数代码例题:P3389 【模板】高斯消元法#include&lt

2021-11-07 21:09:25 87

原创 牛客2021暑期训练9-E-Eyjafjalla

牛客2021暑期训练9-E-Eyjafjalla题目链接题意给定一个以 111 为根的有根树,孩子的点权小于父亲的点权。多次询问,每次询问包含 xxx 节点的权值范围为 [l,r][l, r][l,r] 的极大连通块的大小题解病毒传播可以看作两个阶段,第一个阶段先上升到可感染的最高的一个节点 rtrtrt,第二阶段感染 rtrtrt 的子树中所有温度大于 lll 的城市第一阶段可以通过倍增法求得 rtrtrt第二阶段相当于在 rtrtrt 的子树中查询权值大于 lll 的节点个数,根据每个节点

2021-08-15 14:45:21 150 1

原创 牛客2021暑期训练8-F-Robots

牛客2021暑期训练8-F-Robots题目链接题意一个 n∗mn*mn∗m 的地图,000 可达 111 不可达,有三种机器人,只能向下走、只能向右走、可以向下向右走,对给的 qqq 个机器人能否从 (x1,y1)(x1,y1)(x1,y1)走到 (x2,y2)(x2,y2)(x2,y2)题解主要记录下 bitsetbitsetbitset 存可达图代码#include<bits/stdc++.h>#define Pb push_backusing namespace std

2021-08-11 22:29:06 118

原创 牛客2021暑期训练4-E-Tree Xor

牛客2021暑期训练4-E-Tree Xor题目链接题意给定一棵树,节点有权值 w[i]w[i]w[i] 且 w[i]∈[li,ri]w[i]\in[l_i,r_i]w[i]∈[li​,ri​],相连节点权值异或已知,求满足的权值组数题解先令 w[1]=0w[1]=0w[1]=0, 解出剩下的 www,之后可以发现, 如果要 w[1]=aw[1]=aw[1]=a, 那么剩下的 www 都会 xorxorxor 上 aaa所以就变成了求解合法的 aaa 的数量, 限制有 nnn 个不等式, 形

2021-08-06 20:52:42 91

原创 牛客2021暑期训练6-H-Hopping Rabbit

牛客2021暑期训练6-H-Hopping Rabbit题目链接题意平面上有nnn个矩形,给定ddd,需要找一个位置(x,y)(x,y)(x,y),使得所有(x+kd,y+kd)(x+kd,y+kd)(x+kd,y+kd)均不落在矩形中题解前置知识:扫描线由于能到的位置是重复的,我们将所有矩形移到(0,0)(0,0)(0,0)到(d,d)(d,d)(d,d)范围内求并,如果最终范围内存在未被覆盖的点,则该点可作为答案。矩形求并,用扫描线即可。移动到(d,d)(d,d)(d,d)范围内可能拆成1

2021-08-04 21:31:37 193

原创 牛客2021暑期训练5-D-Double Strings

牛客2021暑期训练5-D-Double Strings题目链接题意对所给的两个字符串 A、B 求好的子序列个数,好的子序列为:一段相同的前缀(可以无)+ 一个不同字符(a比b小)+ 长度相同的任意后缀(可以无)题解设 f[i][j]f[i][j]f[i][j] 为 A[1...i]A[1...i]A[1...i] 和 B[1...j]B[1...j]B[1...j] 可用前缀个数,可得递推式f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]f[i][j]=f[i−1

2021-08-01 21:04:20 168

原创 牛客2021暑期训练5-B-Boxes

牛客2021暑期训练5-B-Boxes题目链接题意有 n 个盒子,每个盒子有黑球或白球,打开盒子需要 wi 的代价,同时可以提示当前未打开的盒子里共有多少个黑球,代价为 C,求知到所有球的期望题解当我们使用 C 时,之后每打开一个盒子都可以知道后续还有多少黑球,也就是说我们只需要使用一次 C,且在开始使用最优,直到后面颜色一样就可以结束。因此就有两种方案不用 C,直接打开全部盒子,代价为 w[i] 之和用 C,每次都有概率结束(后面全都是白球或全都是黑球)且概率为 12n−i×2\frac{1

2021-08-01 16:54:30 70

原创 牛客2021暑期训练4-J-Average

牛客2021暑期训练4-J-Average题目链接题意给定 n*m 的矩阵,w[i][j]=a[i]+b[j],求一个不小于 x * y 的子矩阵,其平均值最大n,m,ai,bi≤105题解假设我们要求的子矩阵为tot=∑i=x1x2∑j=y1y2(ai+bj)=(y2−y1+1)∗∑i=x1x2ai+(x2−x1+1)∗∑j=y1y2bjtot=\sum_{i=x1}^{x2}\sum_{j=y1}^{y2}(a_i+b_j)=(y2-y1+1)*\sum_{i=x1}^{x2}a_i+

2021-07-26 17:26:09 98

原创 牛客2021暑期训练3-B-Black and white

牛客2021暑期训练3-B-Black and white题目链接题意给定 n*m 的矩阵,每个小方块有一个被染黑的代价 c[i][j],若四个方块形成矩形,其中一个方块无需代价。求矩阵全部染黑代价的最小值题解对于⼀个位置 ,如果该格子是黑色,我们连⼀条 A[i] 到 B[j] 的边。绿色已染,红色未染,所以A[3]–B[2],A[5]–B[2],A[5]–B[6],当我们要染 (3,6) 时,可以发现 A[3], B[6]已经在一个集合了显然用最小生成树做就可以了代码#inclu

2021-07-25 17:06:51 102

原创 牛客2021暑期训练3-E-Math

牛客2021暑期训练3-E-Math题目链接题意给定 n(n≤1e18),求 (x,y) 数量,其中 xy+1 | x2+y2 (1≤x≤y≤n) (x2+y2能被xy+1整除)题解先看个公式证明回到本题,假设我们已知数对 (x,y) 为一组解,必然还有一组解为 (x,y’) ,又由上面的证明可知 y’<x≤y,而题目要求 x≤y,因此 (x,y’)->(y’,x),那么此时两组符合要求的解则为 (y’,x) (x,y) ,同时 y=k*x-y’通过上面的公式可以求出一组解 (x

2021-07-25 15:41:44 141

原创 牛客2021暑期训练3-J-Counting Triangles

牛客2021暑期训练3-J题目链接题意给一个 n(n<=8000) 个顶点的图,每两个顶点边颜色为黑或白,求三个顶点组成的三角形边颜色相同的个数题解每个三⻆形要么同⾊,要么有两边同⾊另⼀边异⾊。对于后者,三⻆形有恰有两个异⾊⻆,⽽前者没有异⾊⻆。因此异⾊⻆数/2 即为不符合条件的三⻆个数。⽤总数减去即可。复杂度 n^2代码#include<bits/stdc++.h>#define LL long longnamespace GenHelper{ unsign

2021-07-24 19:48:29 73

原创 牛客2021暑期训练1-H-Hash Function

牛客2021暑期训练1-H题目链接题意给定n个互不相同的数,找一个最小模域,使得它们在模域下不同,n<=500000,a[i]<=500000题解卷积,FFT/NTT对任意两个数 ai%mod == aj%mod 可以转换为 | a[i]-a[j] |%mod==0要求所有差值复杂度 n^2,此时就要用到卷积在 nlogn 的复杂度下求出推荐两个写的好的FFT/NTT文章倾心讲解 FFT 多项式与快速傅里叶变换 && 迭代模板带注释小学生都能看懂的FFT!!!

2021-07-23 18:32:33 95

原创 牛客2021暑期训练1-A-Alice and Bob

牛客2021暑期训练1-A题目链接题意给定两堆石子n,m(1<=n,m<=5e3),Alice先手,对任意一堆取k(k>0)个,另一堆取s*k(s>0)个题解简单博弈论,设f[i][j]为SG函数值f[0][0]=0,对每个0态枚举k,s,方便起见,另i<=j代码#include<bits/stdc++.h>using namespace std;const int N=5e3+9;int T,n,m;int f[N][N];void Ini

2021-07-23 11:15:01 98

空空如也

空空如也

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

TA关注的人

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