SUF
  • 2024-09-292024 Autumn Training #1 DF (by hzy)
    D.咸鱼跑酷(解有限trick)大意:长度n跑道,每个点可以二选一道具(+or*一个正数),q个询问从初始分数u,从l跑到r,求最大分数(结果模P)。可以预处理\(mul_i\)和\(add_i\),每个点要么乘要么加的数,把点分为两类,可乘点与不可乘点,\(mul_i=1\)意味着\(i\)点不可乘只能加,决策固定,因此我们需
  • 2024-09-22CF1239E Turtle 题解
    Description一只乌龟从\(2\timesn\)的棋盘的左上角走到右下角,只能往下或往右,需要给出一种方案来分配\(2n\)个数字使得乌龟走过的路径上的数之和的最大值最小。\(2\leqn\leq25,0\leqa_{1,i},a_{2,i}\leq5\times10^4\)。Solution设\(pre_{i}=\sum_{j=1}^{i}{a_{1,i}
  • 2024-09-12[NOIP 2024 模拟2]数组操作
    [NOIP2024模拟2]数组操作题意有\(n+2\)个整数\(a_0,a_1,...,a_n,a_{n+1}\),\(a_0=a_{n+1}=0\)。你需要做确切地\(n\)次操作,每次数组操作为以下形式:选择一个整数\(x\)满足\(a_x\ne0\),使得\(a_x=0\),令\(l=\max_{i<x,a_i=0}i,r=\min_{i>x,a_i=0}i\)
  • 2024-09-0420240904:字符串选做
    P4555[国家集训队]最长双回文串题意:给定字符串\(s\),找到他最长双回文串\(t\)的长度。双回文串定义为存在一个\(i>1\)使得\(t[1,i)\)和\(t[i,n]\)都是回文串。\(\verts\vert\le10^5\)。二分哈希求出所有回文中心的半径,设以\(i\)为中心的最长回文串为\([l_i,
  • 2024-09-01CF1826D
    CF1826D链接:Problem-1826D-Codeforces题目大意:给你一个数组,让你选择一个区间\([l,r]\)设选中的区间为\(b\),\(b_{i_1}+b_{i_2}+b_{i_3}\)为区间内前三大的值,你需要选择一个区间使得\(b_{i_1}+b_{i_2}+b_{i_3}-(r-l)\)值最大,输出最大值思路:我们发现
  • 2024-08-30P8304 [CoE R4 D] 01 串
    思路:要注意到添加\(1\)和删除\(0\)是等价的。先令\(0\to-1\)。首先猜了一个结论,先顺着走,做一个前缀和,若当且位置的前缀和\(<0\),那么需要删除这个位置的\(0\),使得前缀和为正;然后再反着做一遍,那么答案就是删除的\(0\)的个数。暴力Code:intmain(){n=read(),
  • 2024-08-28CF17C Balance
    题意给定一个由abc组成的字符串。你每次可以将相邻两个字母的其中一个替换为另一个。问使得三种字符在字符串中出现的次数两两之差不能大于\(1\)的方案数。对\(51123987\)取模。\(n\le150\)。Sol这个奇怪的模数没用。对答案的字符串进行观察,不难发现一个性质。
  • 2024-08-26CF2003F 解题报告
    题目描述现在有三个长度为\(n\)的序列\(a,b,c\)。你需要提取一个子序列\(p_1,p_2,\dots,p_m\),满足如下条件:\(\foralli\in(1,m],p_i>p_{i-1}\)。\(\foralli\in(1,m],a_i\geqa_{i-1}\)。\(b_{p_1},b_{p_2},\dots,b_{p_m}\)是互不相同的。在此基础上最大化
  • 2024-08-15CF1988D The Omnipotent Monster Killer
    luogu中文题面:https://www.luogu.com.cn/problem/CF1988D树形dp。我们只关心子树的根节点v什么时候被删去。dp[u][i]+=min(dp[v][1...i-1,i+1...T]).T是log(n)的。因为\(T\leqMex(u)\),而考虑要多少节点使\(Mex(u)=T\),有\(f_T=1+f_1+...f_{T-1}\)得\(T=log_2n\)不
  • 2024-08-072024杭电多校6-11
      CODE:1#include<bits/stdc++.h>2#definerep(i,a,b)for(inti=a;i<=b;i++)3#definedwn(i,a,b)for(inti=a;i>=b;i--)4#defineMAXN1025015#defineinf999999996usingnamespacestd;7typedeflonglongll;8inlinein
  • 2024-08-05牛客多校2024-6
    A-Cake(神金,害我调了一个半小时)Alice和Bob玩一个游戏。游戏分为2阶段。阶段1:有一棵边权值为\(0\)或\(1\)的有根树,两人轮流走,Alice先走,走到叶子就停下来。记录下经过边的权值形成一个字符串\(S\)阶段2:Bob将一个蛋糕切成\(len(S)\)块,块可以为空。然后遍历\(S\)的
  • 2024-07-31HDU2024 R4
    T4先把四组分成两组,左边两组叫\(L\),右边两组叫\(R\)。直接爆搜每个数属于\(L\)还是\(R\),过程中顺带\(01\)背包出两组分别能取到哪些子集异或和。接下来不妨设\(w_{f(A)}\gew_{f(B)}\),\(w_{f(C)}\gew_{f(D)}\)。若\(w_{f(A)}\gew_{f(C)}\),则答案为\(w_{f(A)}-w_
  • 2024-07-27航电第三场(单峰数列)
    单峰数列题意对于一个整数数列,如果其先严格递增,然后在某一点后严格递减,我们称这个数列为单峰数列(严格递增和严格递减的部分均要是非空)。给定长度为n的整数数列\(a_1,a_2,…,a_n\),请你支持q次操作:1lrx:将\(a_l,a_{l+1},…,a_r\)的每个数加x。2lr:判断\(a_l,a_{l
  • 2024-07-23CF848C Goodbye Souvenir
    CF848CGoodbyeSouvenircdq分治求动态二维数点先考虑答案,对于一种颜色\(c\),假设出现位置集合为\(S\),每个位置的前继记为\(pre_i\),那么可以写成:\[\sum\limits_{i\inS|pre_i\geL|i\leR}i-pre_i\]如果不修改,可以看到题目求的就是矩形横坐标\([1,R]\)到纵坐标\([L,n]\)
  • 2024-07-21暑假集训CSP提高模拟4
    暑假集训CSP提高模拟4\(T1\)P134.WhiteandBlack\(0pts\)原题:[ARC148C]LightsOutonTree翻转方式:从根节点进行\(DFS\),若遇到黑点就进行翻转。最后一定能使全树均为白点,即不存在无解的情况。进而有每个点仅会被主动翻转一次,且翻转顺序与最终结果无关。观察到
  • 2024-07-19P9032 [COCI2022-2023#1] Neboderi
    题意给长度为\(n\)的数组\(a\),求长度不小于\(k\)的区间\([l,r]\)使得\(\gcd_{i=l}^ra_i\times\sum_{i=l}^ra_i\)最大,输出这个最大值。\(1\lek\len\le10^6,1\lea_i\le10^6\qquad\text{2.5s512MB}\)题解考虑分治(这是套路,想不到只能说做题少别打我)。
  • 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);