- 博客(609)
- 收藏
- 关注

原创 [算法总结目录]
算法总结索引图论1.最短路算法(Dijkstra + Floyd)2.最短路算法(SPFA 和 Bellman - Ford)3.最小生成树(无向图)问题图论1.最短路算法(Dijkstra + Floyd)/-朴素板Dijkstra堆优化版Dijkstra朴素版Floyd-/2.最短路算法(SPFA 和 Bellman - Ford)/-bellman-ford板子朴素版spfaspfa判断负环-/3.最小生成树(无向图)问题/-朴素版P-/...
2021-04-30 10:52:55
206
原创 终の序章(一)
写在我大三的最后一次省赛也是最后一次比赛从半年前区域赛的大失利,导致我曾一度放弃算法竞赛和算法训练这次我们歪了很多题分两次dfs,分链分层统计答案图形规律题换了4次做法暴力回文写成dp (我也认为是dp)本次比赛作为收尾但是也带来很多启发,正所谓[终点也是下一次的起点]以下是几个启发Q : 活在前辈的阴影里,认为只有花异于常人的努力才能变得很强A : 但是其实脚踏实地每一步,不自欺欺人,好高骛远。保持每天都有收获,且学会思考这其实已经超过很多人了。之前好高骛远。
2023-05-20 21:42:04
936
2
原创 [VP]河南第十三届ICPC大学生程序竞赛 J.甜甜圈
传送门 :给定两个甜甜圈堆 , 每次只能吃所有中最甜的那一个, 否则的话就移动询问最小的移动步骤很明确的一个目标 ,寻找当前最大值并且求出距离那么我们考虑将两个甜甜圈堆进行合并, 使得变成一个堆的操作不难发现, 我们如果对甜度进行排序,那么最大值很容易就可以找到 , 而且对于距离的操作,我们只需要多记录一个下标即可。但是被吃掉的甜甜圈会消失 ,也就是我们计算完操作之后需要给他删除所以我们就可以发现 , 如果我们利用树状数组前缀和的操作 , 那么两边的距离就是getsumi−g。
2023-01-06 17:45:51
882
原创 [VP]河南第十三届ICPC大学生程序竞赛 L.手动计算
给定两个椭圆 的方程 , 要求求出椭圆并集的面积之和本题很显然是积分或者计算几何的问题对于积分的做法, 无非就是根据积分公式求出第一象限的面积之后拓展到后面四个象限。(奈何我懒, 连两个椭圆的焦点都不想求更别提后面的积分公式了)官方题解用的是蒙特卡洛积分的方法 , 这个方法的证明就是大数定理。根据这几个公式的推导 , 那么我们可以知道定积分形式的内容就可以转变为1N∑fxpxN1∑pxfx的形式 , 即最后变成了面积的比那么这个公式的精度如何, 下面是。
2023-01-06 16:54:29
1174
原创 [vp] 2021 山东省赛 CDGHM
打满 2个小时30分钟 基本都在做题 体验非常好传送门 : https://codeforces.com/gym/103118题意 :让你求sum/nsum/nsum/n并且需要输出保留的后面几位思路 :因为这里并没有考虑进位输出,所以不考虑使用函数输出(当然我也不会)自己简单模拟一下除法的过程,就会发现每次我们都需要拿出上一个除出来的余数当作现在的除数code :M. Matrix Problem题意 :给你一个已知数组CCC,然你构造两个数组A,BA,BA,B。这两个数组需要满足只有在CCC
2023-01-05 13:30:39
887
原创 第 68 场周赛
看完这题一眼就并查集了。我们发现不管怎么样最后的点都会经过两边。因此我们将走向两边的点分为。,对于这个题也没细想。我们并不需要分集合,因为向左边的路只能是。同时判断两边是否合法,判断当前集合是否满足即可。所以我们统计一下前后缀即可。给定一个字符数组包含。
2022-09-29 22:16:17
357
原创 [Acwing | 周赛] 第70场周赛
tag:tag:思维题数组操作题意 :显然对于第一种操作,因为他是对单独的一个所以我们可以考虑最后操作我们先考虑如何进行第二种操作。因为第一种操作针对偶数,所以我们尽可能的用第二种操作将所有数变为第一种操作可操作的数。因为考虑改变了的状态不能再改变,所以这里是a[i]−−,a[i+1]−−a[i]−−,a[i+1]−−而不是a[i−1]−−a[i-1]--a[i−1]−−cin >> n;
2022-09-29 01:24:28
983
1
原创 [Acwing] 第 67 场周赛
tag:tag:数学寻找满足aiaja_ia_jaiaj能被kkk整除的数对数量(ai∗T+aj)%k=0(ai∗T+aj)%k=0a[i]∗T%k=x1a[i]∗T%k=x1a[j]%k=x2a[j]%k=x2x1+x2=kx_1+x_2=kx1+x2=k形如x1+x2=
2022-09-03 21:13:39
349
原创 [Acwing] 第66场周赛 4607.字母补全
tag:tag:滑动窗口暴力好久没有写滑动窗口了,卡了好久给定一个字符串,让你修改其中的?变为其他大写字符。使得该字符串存在一个长度为26的子串并且其中每个字符只出现一次很显然的滑动窗口题,至于暴力我没一眼看出来我们需要维护一个长度为26的不存在重复的字符串因此我们可以利用滑动窗口维护一个不重复的窗口。我们利用cnt[]cnt[]cnt[]进行计数,如果当前的窗口出现重复我们移动即可否则的话,当窗口第一次到达262626长度的时候,我们就可以进行更改。...
2022-09-01 13:47:47
384
原创 [Acwing] 第 60 场周赛 C-AcWing 4496. 吃水果
tagtag组合数学dp给定nnn个人,mmm个水果,询问恰好有kkk个人拿到的水果和左边的人不一样的方案数我们在n−1n-1n−1个人中挑选出kkk个人显然第一个人有mmm种选法,那么剩下的要么是和第一个人相同要么就是不同因此总共有(m−1)k(m-1)^k(m−1)k种选法,而对应这kkk个人又有Cn−1kC_{n-1}^kCn−1k种所以总方案数Cn−1k∗m∗(m−1。...
2022-07-16 20:37:37
451
原创 [Acwing]第 60 场周赛 B- 4495. 数组操作
tagtag模拟STL排序这题10分钟才出货,题目看了好几遍,今天昏头了属于是我们只需要排序,排序!,之后直接模拟即可我们需要实时计算需要减的值然后每次减的时候,及时的踢出已经减为000的值lln,k;i>x;if(!//计算需要减去的差值while(k--){continue;=0){lln,k;i...
2022-07-16 20:37:18
345
原创 [cf] 805 div3 F. Equate Multisets
tag:tag :tag: 传送门 :题意 :给定两个数组A[1....N]A[1....N]A[1....N],B[1...N]B[1...N]B[1...N]询问是否可以通过有限次操作使得B=AB=AB=A操作定义如下 :选中一个iii使得思路 :看到/2/2/2这种操作,我们需要联想到二进制我们发现B[i]∗2B[i]*2B[i]∗2相当于在二进制后面加了个0而对于第二个操作,就是相当于删除了二进制最后一位而对于B[i]∗2B[i]*2B[i]∗2我们可以看成A[i]/2A[i]/2A[i
2022-07-12 17:16:25
696
原创 [cf] 805 div3 E - Split Into Two Sets
tag:tag :tag: 传送门 :题意 :给定一个nnn,和nnn个数对,{a,b}\{a,b\}{a,b},询问是否可以将这些数对分为两组使得每组中不出现相同的数字思路 :我们考虑{a,b}\{a,b\}{a,b}之间建立一条边,如果不存在每组中相同的数字,那么必然不可能出现这种情况,这种情况可以继续扩大即 奇数环。我们可以从 二分图中得知, 二分图恰好没有奇数环显然的,如果每个连通分量都没有奇数环,那么是可以任意分配的因此我们只需要对每个连通分量跑一遍 dfs染色法dfs染色法dfs染色
2022-07-12 16:45:54
366
原创 [Acwing] 342. 道路与航线
tag:tag :tag: 传送门 :题意 :给定多个双向边和多个单向边,双向边边权必然为正,单向边可能为负,每个双向边构成的连通块只能由单向边相连,询问从SSS开始到其他点的最短路思路 :首先题意很明显的想让我们分块处理,即先处理出双向边的所有连通块,这样子整个图,就会变成一个DAGDAGDAG下面这里就有一条需要注意的是 :DAGDAGDAG上 我们可以线性的时间求出单源最短路因此我们直接对DAGDAGDAG求一个最短路即可code :...
2022-07-10 16:04:21
370
原创 [ARC] AtCoder Regular Contest 075
传送门 :Tag:Tag :Tag: 题意 :给定你NNN个数,询问你可以拼成的最大的不被10整除的数,如果没有输出0思路 :我们考虑先将所有数加起来,然后再从小到大减去不被10整除的数,直到该数不被10整除为止code :D - Widespreadtag:tag :tag: 题意 :给定NNN个怪物,每个怪物有血量HiH_iHi,你可以对任意的怪物进行攻击造成AAA伤害,并使得其他怪物掉BBB血。询问所有怪物生命值降为最低的操作次数思路 :显然答案是满足单调的,从杀不死到可以杀死我们
2022-07-09 15:08:45
469
原创 [牛客] [NOIP2015]跳石头
tag:tag :tag: 题意 :思路 :因为题目所求的是 最短的最大 ,很标准的一个二分询问方法因此我们可以考虑二分最短距离,那么我们怎么check呢很简单,显然对于现在的需要判断的 x,如果两个石头的差小于x的时候 , 我们肯定是要将其移走的所以我们只需要判断移走的数量和m的关系即可当然移走的状态我们可以通过last进行转移code :......
2022-07-05 23:55:40
387
原创 [牛客] B-完全平方数
tag:tag :tag: 题意 :思路 :l≤x≤rl\le x \le rl≤x≤rl≤x≤r\sqrt l \le \sqrt x \le \sqrt rl≤x≤r又因为l,r≤109l,r\le10^9l,r≤109因此我们可以预处理出x\sqrt xx数组最后通过二分确定开方区间,开方区间的大小就是答案code :...
2022-07-05 23:30:30
490
原创 [Acwing] 58周赛 4490. 染色
周六的时候忙,听说这题挺难的,什么没见过的dp结果感觉难度 C< Btag:tag :tag: 传送门 :题意 :给定一棵树和每个节点需要的颜色,你可以进行多次操作,询问最少的操作使得每个节点的颜色温和操作定义如下 :选择一个节点 v 和一种颜色 x。将以节点 v 为根节点的子树中的全部节点(包括节点 v)都染成颜色 x。思路 :看完操作,很明显的就提示你了,是 自下而上的进行 dfsdfsdfs然后我们再考虑怎么进行染色,显然我们可以贪心的考虑, 如果子树和本身颜色不同,显然是需要染色的反之
2022-07-04 12:09:42
352
原创 [Acwing] 58周赛 4489. 最长子序列
tag:tag :tag: 传送门 :题意 :给定一个 上升 的数组,求一个子序列使得子序列中的元素满足aj∗2≥aj+1a_j*2\ge a_{j+1}aj∗2≥aj+1,询问合法子序列的最大长度思路 :因为给出的数组是 上升的因此如果a1∗2≥a3a_1*2\ge a_3a1∗2≥a3存在,那么必然存在a1∗2≥a2a_1 *2\ge a_2a1∗2≥a2则这个条件使得所求答案 连续, 因此我们只需要OnOnOn的扫一遍即可code :...
2022-07-04 11:51:08
363
原创 [at] abc 258G - Triangle 三元组可达-暴力
tag:tag :tag: 传送门:题意 :给定一个010101完全图,111表示这两个点有边相连,000表示这两个点没有边相连询问有多少组三元组(i,j,k)(i,j,k)(i,j,k),满足两两之间有边相连思路 :暴力的做法n3n^3n3,因为图只存在010101,我们考虑使用位运算减去一层的枚举即 , 我们将状态存入中,然后枚举两行之间的状态,进行&\&&运算显然的如果&=1\&=1&=1那么,存在三个点是可达的,时间复杂度n2lognn^2lognn2logncode :...
2022-07-03 01:29:00
340
原创 [cf] 803 div2 B. Rising Sand
tag:tag :tag: 传送门 :给定一个数组AAA,对于A[i]>A[i−1]+A[i+1]A[i]>A[i-1]+A[i+1]A[i]>A[i−1]+A[i+1],我们定义为过高,同时给定一个kkk,你可以让区间长度为kkk的A[i]+1A[i]+1A[i]+1,询问执行任意次操作止之后可以获得最大的过高的堆数因为答案的计算是A[i]>A[i−1]+A[i+1]A[i]>A[i-1]+A[i+1]A[i]>A[i−1]+A[i+1]因此我们发现k≥2k\ge2k≥2的时候,十分难改变或者十分难
2022-06-29 10:26:07
202
原创 [cf] 803 div2 A. XOR Mixup
tag:tag :tag: 传送门 :给定一个数组AAA,其中n−1n-1n−1个数是原数组,另一个数n−1n-1n−1个数的异或,询问给出的任意排列中,该数是什么值因为数组可以分为两部分,n−1n-1n−1和111,又因为必然存在有解所以整个数组异或和为000,因此随便取一个即可...
2022-06-29 10:07:57
149
原创 [cf] 802 div2 C. Helping the Nature
tag:tag :tag:传送门:题意 :给定多个树木的水分值−109≤ai≤109- 10^9 \le a_i \le 10^9−109≤ai≤109你可以进行如下三个操作 :询问 最小的操作次数 使得最后所有树木的水分=0=0=0思路:第一种操作对应差分的 :d[1]−1,d[i+1]+1d[1]-1,d[i+1]+1d[1]−1,d[i+1]+1第二种操作对应 :d[i]−1,d[n+1]+1d[i]-1,d[n+1]+1d[i]−1,d[n+1]+1第三种操作对应d[1]+1,d[n+1
2022-06-19 21:23:15
318
原创 [cf] 802 Div. 2 D - River Locks
tag:tag :tag: 传送门 :题意 :给定nnn个体积viv_ivi的水渠,每个水渠上面都有水管现在有qqq个询问对于每个询问,最少的开水管数使得能在tjt_jtj秒内填满所有水渠(显然如果一个水渠满了会流到下一个水渠里面)思路 :开闸数×时间≥总蓄水数开闸数 × 时间 \ge 总蓄水数开闸数×时间≥总蓄水数 , 显然可以使得总方案成立开闸数≥总蓄水数时间开闸数 \ge \frac{总蓄水数}{时间}开闸数≥时间总蓄水数同时又因为需要 最小, 所以 开闸数=总蓄水数时间开闸数 = \fra
2022-06-19 20:52:31
323
1
原创 [abc] AtCoder Beginner Contest 255 C,D
传送门 :tag:tag :tag: 题意 :给定x,a,d,nx,a,d,nx,a,d,n你可以对xxx进行操作,询问最少多少次数使得a,d,na,d,na,d,n表示的等差数列中的某一项正好等于xxxa,d,na,d,na,d,n表示 首项aaa,ddd公差,nnn表示项数思路 :显然这个数是个定值,并且这题需要分类讨论首先对ddd进行讨论,我们发现如果d0的情况,所以我们只需要考虑d>0d>0d>0的情况然后显然x...
2022-06-19 20:39:25
210
原创 [abc] AtCoder Beginner Contest 255 C,D
传送门 :tag:tag :tag: 题意 :给定x,a,d,nx,a,d,nx,a,d,n你可以对xxx进行操作,询问最少多少次数使得a,d,na,d,na,d,n表示的等差数列中的某一项正好等于xxxa,d,na,d,na,d,n表示 首项aaa,ddd公差,nnn表示项数思路 :显然这个数是个定值,并且这题需要分类讨论首先对ddd进行讨论,我们发现如果d0的情况,所以我们只需要考虑d>0d>0d>0的情况然后显然x...
2022-06-16 18:51:17
202
原创 [蓝桥] 第十二届国赛真题-异或变换
tag:tag :tag: 传送门 :题意 :给定一个010101字符串,每个回合字符串都会变化如下 :si′=si−1⊕si(i>=1)s'_i=s_{i-1} \oplus s_i (i>=1)si′=si−1⊕si(i>=1),s0′=s0s'_0=s_0s0′=s0询问kkk次之后字符串的状态思路 :我们经过打表可得,字符串总是2t2^t2t次一循环,t表示第一个大于等于字符串长度的二次幂t表示第一个大于等于字符串长度的二次幂t表示第一个大于等于字符串长度的二次幂同时又因为字符
2022-06-16 16:24:32
170
原创 [cf] 799 div4 G. 2^Sort
tag:tag :tag: 传送门 :题意 :给定n,kn,kn,k,同时给定一个数组a[N]a[N]a[N] , 询问数组中有多少个连续字段满足20ai
2022-06-16 15:44:59
219
原创 [POJ]POJ 3678 Katu Puzzle
传送门 :题意 :思路 :每个元素只有两种可能的取值0,10,10,1,并且还是求是否存在合法值使得满足所有条件因此这是典型的2−SAT2-SAT2−SAT问题我们对于给定的nnn个点,取[1...n][1...n][1...n]表示xxx取000,取[n+1....n+n][n+1....n+n][n+1....n+n]表示xxx取111下面考虑建边 :(摘自繁凡)建完边之后,我们只需要跑一边强连通分量SCCSCCSCC,对于矛盾的关系scc[x]==scc[x+n]scc[x]==scc[x+
2022-06-14 20:38:31
645
1
原创 [nk] 牛客练习赛100 C 小红的删数字
tag:tag :tag: 传送门 :题意 :思路 :首先对于能被333整除,我们都知道是各位之和能被333整除因此我们考虑将所有数按照%3\%3%3进行分类,同一类 本质为等价的因此我们分为当然我们还要保证最后不能被删除完即cnt[0]≠0cnt[0] \neq 0cnt[0]=0code :...
2022-06-11 14:57:00
661
原创 [nk] 牛客月赛51 G计算题
tag:tag :tag: 传送门 :题意 :你有一个长度为nnn的字符串,你可以选择删除一段后缀(可以为空),然后修改剩余串中的一个字符,使其变成回文串。请问最后能生成多少种可能的回文串。需要保证整个过程中的字符集仅包含小写字母。其中修改操作必须修改,但可将字符修改为原字符。思路 :我们可以将剩余字符串分为三类本身就是回文,差两个回文,差很多回文对于本身就是回文的如果是奇数长度那么贡献+26+26+26,否则贡献+1+1+1对于差一个回文的因为奇数中间必然不可能非回文的,所以奇数==偶数
2022-06-10 17:17:34
122
原创 [nk] 牛客月赛51 F-平均题
Tag:Tag :Tag: 传送门 :题意 :给你一个数组,你需要求出 所有子段平均数之和答案对109+710^9+7109+7取模,如果答案最简是ab\frac{a}{b}ba,那么需要找到最小的非负整数xxx使得x×b≡a(109+7)x×b\equiv a(10^9+7)x×b≡a(109+7)思路 :我们考虑对操作的区间进行 长度分类,即t=1,2....nt=1,2....nt=1,2....nt=1t=1t=1显然答案就是SnS_nSn(表示前缀和)t=2t=2t=2答案是Sn
2022-06-10 16:30:36
137
原创 [cf] 797 div3 E. Price Maximization
传送门 :题意 :给定nnn个包裹,两两包裹合并,其价值为两数之和除k,求合并所有包裹后得到的最大价值思路 :先考虑不合并,那么每个包裹提供的价值就是a[i]/ka[i]/ka[i]/k然后我们贪心的考虑合并,对这些包裹取余将其装到桶的,双指针的找到 能匹配的 和 自己和自己的code :...
2022-06-09 18:33:06
255
原创 [cf] 797 div3 D.Black and White Stripe
传送门 :题意 :给定一个只含有BWBWBW的字符串,询问最少修改多少次,使得至少有一段连续的BBB至少是KKK个思路 :我们设WWW的贡献是111,对字符串计算一次 前缀贡献,我们贪心的只取KKK个连续的最小代价即可code :...
2022-06-09 17:37:41
444
原创 [cf] 680 div1 A. Division
tag:tag :tag: 传送门 :题意 :给定p,qp,qp,q,寻找一个最大的xxx使得p%x==0,x%q!=0p\%x ==0 ,x\%q!=0p%x==0,x%q!=0范围 :p≤1018,q≤109p\le10^{18},q\le10^9p≤1018,q≤109思路 :首先 显然的p%q≠0p\%q\neq0p%q=0的话,那么答案就是ppp其次对于这种题一开始就想到的是质因数分解但是对ppp进行质因数分解显然失智因此我们考虑对qqq进行质因数分解我们发现如果p%x==0p\
2022-06-06 12:59:01
107
原创 [Acwing] 第54场周赛 4430.括号序列
tag:tag :tag: 传送门 :题意 :给定一个括号序列,询问有多少个合法位置,使得修改之后任然满足条件条件 :思路 :考虑操作的只有两种 :L,R指的是字符串中左右括号的数量L,R指的是字符串中左右括号的数量L,R指的是字符串中左右括号的数量我们考虑第一种操作 :我们认为是向上的,是向下的因为我们需要满足第二个条件所以当y...
2022-06-05 11:27:07
239
原创 [Acwing] 第54场周赛 4429.无线网络
tag:tag :tag: 传送门 :题意 :给定nnn个那奶牛和两个基站,询问两个基站的r1r1r1,r2r2r2覆盖半径在覆盖所有奶牛的情况下,他们的r12+r22r_1^2+r_2^2r12+r22最小值是多少思路 :显然的,如果我们固定出r1r_1r1那么r2r_2r2 也是固定的同时又因为数据范围n≤2000n\le 2000n≤2000,因此我们考虑枚举r1r_1r1,因为r1r_1r1可以等于000所以r1∈{0,Disi=1n(奶牛,基站1)}r1\in\{0,Dis_
2022-06-05 10:57:08
104
原创 [cf] 594 div2/div1 C/A Ivan the Fool and the Probability Theory
tag:tag :tag: 传送门 :题意 :给定一个n∗mn*mn∗m的网格,询问有多少种黑白染色方案,使得每个格子最多有一个相同颜色相邻数据范围 N,M∈105N,M \in 10^5N,M∈105思路 :因为数据范围很大,不是状压方案数问题因为我们回归到正常的状态分析状态表示 :f[i][0/1]f[i][0/1]f[i][0/1]表示第iii个格子为黑色或者白色的方案数显然一行上面,i−1i-1i−1的格子 和 i−2i-2i−2的格子 不同为iii的颜色状态计算 :f[i][0]=f
2022-06-03 12:40:08
121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人