suf
  • 2024-06-17Codeforces Round 953 (Div. 2) A - F
    A编号为\(n\)的一定选,第二叠书在\(1\simn-1\)选最大的。voidsolve(){ cin>>n; for(inti=1;i<=n;++i){ cin>>a[i]; } intans=a[n]; intx=0; for(inti=1;i<n;++i){ x=max(x,a[i]); } cout<<ans+x<&
  • 2024-06-02Leetcode 3161. 物块放置查询
    https://leetcode.cn/problems/block-placement-queries/description/有一条无限长的数轴,原点在0处,沿着x轴正方向无限延伸。给你一个二维数组queries,它包含两种操作:操作类型1:queries[i]=[1,x]。在距离原点x处建一个障碍物。数据保证当操作执行的时候,位置x处
  • 2024-05-30杂数据结构选做
    杂数据结构选做持续更新ing...更新多少取决于我卷了多少似乎都是比较基础的东西,但是我数据结构太菜了,没办法╮(╯_╰)╭#9016.CodeChefMINXORSEG有两种做法,我敲的后一种第一种先不考虑范围问题,考虑现在有三个点\(u,v,w\),若它们的\(lcp\)为\(l\),那么考虑第\(l+1\)位,根据
  • 2024-05-22P8675 [蓝桥杯 2018 国 B] 搭积木
    原题链接题解1.请务必读清题干意思2.如果以最顶端积木的位置为状态,是可以穷尽所有情况的,则状态为\(dp[i][l][r]\),最顶端第\(i\)层只在区间\([l,r]\)内连续放置积木有几种方法3.状态转移方程$dp[i][l][r]=\sum_1^l\sum_r^mdp[i+1][x][y]$把\(x,y\)看成二维坐标上
  • 2024-04-052024.3.17 模拟赛
    A贸易题目保证输入的边\(u<v\),说明题目中的图是一个有向无环图\(DAG\),但是不一定连通。可以记录\(f[i]\)表示到达\(i\)之前能遇到的最小的价格,使用拓扑排序进行\(dp\)转移。对于每一个点\(i\),如果其价格为\(a[i]\),就可以用\(a[i]-f[i]\)更新答案,取最大值即
  • 2024-04-05P9870 [NOIP2023] 双序列拓展 题解
    题意:称某个序列\(B=\{b_1,b_2,\cdots,b_n\}\)是另一个序列\(A=\{a_1,a_2,\cdots,a_m\}\)的拓展当且仅当存在正整数序列\(L=\{l_1,l_2,\cdots,l_m\}\),将\(a_i\)替换为\(l_i\)个\(a_i\)后得到序列\(B\)。例如,\(\{1,3,3,3,2,2,2\}\)是\(\{1,3,3,2\}\)的拓展,
  • 2024-04-04Anu Has a Function
    题目链接CodeforcesRound618(Div.1)A.AnuHasaFunction思路:我们把每个二进制位上的111看作是集合的不同的元素,二进制的位运算(按位与,按位或,按位异或)其实可以
  • 2024-03-27C. Theofanis' Nightmare
    原题链接题解太巧妙了!!层加式?code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lla[100005]={0};intmain(){llt;cin>>t;while(t--){lln;cin>>n;for(inti=1;i<=n;i++)cin>&g
  • 2024-03-25P1121 环状最大两段子段和
    原题链接题解这里和线性最大两段子段和不同,没有子段之间必须间隔一米,所以处理方式略有不同code#definelllonglong#include<bits/stdc++.h>usingnamespacestd;lla[200005]={0},pre[200005]={0},suf[200005]={0};intmain(){ios::sync_with_stdio(false);
  • 2024-03-06P2135 方块消除
    原题链接题解代码量小的离谱,思维难度大的离谱对于两个原本不相邻的同色区域块,历经千辛万苦碰面的场景,我们可以描述成右边的区域块为左边的区域块消除的时候增添了长度设\(dp[i][j][suf]\)代表消除区域\([i,j]\)同时该区域的\(j\)增添了长度\(suf\)但是合并消除不一定
  • 2024-03-01CodeForces 1936D Bitwise Paradox
    洛谷传送门CF传送门和CF1004FSonyaandBitwiseOR很像。考虑一次询问怎么做。考虑分治,每次只计算左端点在\([l,mid]\),右端点在\([mid+1,r]\)的区间的贡献。对于每个\(i\in[l,mid]\),维护最小的\(j\in[mid+1,r]\)使得\([i,j]\)的或\(\gev\),那么\(\m
  • 2024-03-01Codeforces Round 930 (Div. 2) - sol
    20240301由于笔者实力较弱,所以这只是Div2的题解。四年一次的比赛啊,还是要打。Dashboard-CodeforcesRound930(Div.2)-CodeforcesA.ShufflePartyYouaregivenanarray\(a_1,a_2,\ldots,a_n\).Initially,\(a_i=i\)foreach\(1\lei\len\).Theopera
  • 2024-02-28cf1621g-solution
    CF1621GSolutionlink考虑对每个位置\(i\)作为\(i_j\)时计算贡献。\(i\)对一次答案有贡献当且仅当:设其子序列内最右端的位置为\(r\),则要满足\(r\)右侧存在一个数大于\(a_{i}\)。即,设\(lst_i\)表示整个序列最右侧的大于\(a_i\)的数,要满足\(lst_i>r\)。现
  • 2024-02-23代表元学习笔记
    代表元概念网络上没有明确的定义,只能在少量博客中找到一些信息大概是处理一类会算重的统计问题,在每个算重的集合中选出一个代表来统计以去重,就是代表元例子代表元只能说是一种思想,用于问题的转化与化简森林连通块数量可以用点数-边数快速计算但有些时候不好维护,于是我们考
  • 2024-02-16洛谷 P4065 题解
    模拟赛T1,纪念一下第一次场切紫。(话说场上这么多人切是不是都找到原了,就我这么傻想了半天)正难则反,很容易的将题目转化为选择若干种颜色,使这些颜色在原数组中的位置连续。设$pre_i$为颜色$i$最早出现的位置,$suf_i$为颜色$i$最晚出现的位置。假设通过选择若干颜色得到的位
  • 2024-02-07CF1922C Closest Cities 题解
    解题思路贪心,能走距离最短的城市就一定走。分别考虑\(x>y\)和\(x<y\)的情况,两种情况分别是从后向前转移和从前往后转移,分别预处理一个前缀和和后缀和即可。AC代码#include<stdio.h>#include<stdlib.h>#include<valarray>#defineN100005#definelllonglongintn
  • 2024-02-06Codeforces div2 C题补题
    Codeforcesdiv2C题补题1922C.ClosestCitiesC.ClosestCities很容易看出,端点的两个城市的最近城市就是他的直接后继和直接前驱,而中间的城市的最近城市就是他前驱和后继中距离绝对值最小的那个,因此我们可以先预处理出每个城市对应的最近城市,用map存储。然后因为区间可以从
  • 2024-01-28后缀数组
    后缀数组定义suf[i]i到最后的子串rank[i]suf[i]在所有后缀中的排名sa[i]排名为i的后缀的开始位置sa[i]与rank[i]为互逆操作,相反的排列height[i]suf[sa[i]]与suf[sa[i-1]]的最长公共前缀H[i]即Height[rank[i]]求SA的倍增算法用基数排序,排序次数为\(\lceil
  • 2024-01-23CF-292-D-并查集
    292-D题目大意给定一张无向图,由\(n\)个顶点\(m\)条边。有\(q\)次询问,每次询问将\([l,r]\)的边删去,问图中有多少连通分量。Solution涉及连通分量,尝试应用并查集解决。记录一个前缀并查集\(pre[i]\),表示前\(i\)条边连通后的图;和一个后缀并查集\(suf[i]\),表示后\(m-i\)条边连通
  • 2024-01-21P7114 [NOIP2020] 字符串匹配
    Link:https://www.luogu.com.cn/problem/P7114知识点:枚举,结论,Z函数,哈希唉,三年了,三年!!!简述\(T\)组数据,每组数据给定仅由小写字母组成的字符串\(s\),求\(t={(AB)}^iC\)的方案数,其中\(F(A)\leF(C)\),其中\(F(t)\)表示字符串\(t\)中出现奇数次的字符的数量。两种方案不
  • 2024-01-20P9576 「TAOI-2」Ciallo~(∠・ω< )⌒★
    Link:https://www.luogu.com.cn/problem/P9576知识点:Z函数,哈希,枚举,数数,序列数据结构本质上是个串串枚举题,但是用序列数据结构优化了一下(你说的对,但是:::昨天晚上看到室友在玩一个叫千恋万花的游戏,我就好奇的凑上去看了下。他好像在推一个巫女样子的角色,白头发顶着对兽耳,于是我凑
  • 2024-01-14后缀数组 SA 学习笔记
    后缀数组SA学习笔记后缀数组处理字符串后缀排名,公共子串类问题十分优秀,可以在部分情况下替代后缀自动机(SAM),本文主要讲解后缀数组的实现过程和部分例题。正文定义后缀:从\(i\)开始到字符串结束的一个特殊子串,本文用\(suf(i)\)表示从\(i\)开始的后缀。后缀数组SA:SA是
  • 2024-01-08战争
    pts60\(dp[i][j][k]\)表示前\(i\)个士兵\(j\)个弓箭手\(k\)个步兵\(dp[i][j][k]=max(dp[i-1][j-1][k]+a[i],dp[i][j][k]);\)\(dp[i][j][k]=max(dp[i-1][j][k-1]+b[i],dp[i][j][k]);\)pts100先按照\(a\)排序观察有什么美好的性质在答案中标出\(b\)的位置,发现\(
  • 2023-12-19P4786 [BalkanOI2018] Election 题解
    题意给定一个长度为\(n\)的字符串\(s\),有\(m\)个询问,每次询问最少需要删掉多少个字符才能使\(l\)到\(r\)组成的字符串当中的每一个前缀和后缀都满足C的数量不小于T的数量。思路因为要满足C的数量不小于T的数量,我们不妨设字符C的位置的值为\(1\),字符S的位
  • 2023-12-16EDU 154
    感觉这场的题都挺傻逼的写一下题解A1771就是两位数的素数voidsolve(){strings;cin>>s;for(autoc:s){if(c=='1'||c=='7')cout<<c;}cout<<endl;}B注意到第一位必然是0最后一位必然是1那我们就找一个间隙左边是00相等右边是11相等即可否则