• 2024-09-02P10878 [JRKSJ R9] 在相思树下 III 题解
    Description给定一个长为\(n\)的序列\(a_{1\dotsn}\),需要对它进行两种操作共\(n-1\)次。对一个长度为\(l\)的序列\(b_{1\dotsl}\)进行一次操作将会把序列变为一个长为\(l-1\)的序列\(c_{1\dotsl-1}\):操作一中,\(\foralli\in[1,l),c_i=\max(b_i,b_{i+1})\);操作
  • 2024-08-22CF163E e-Government 题解
    题目传送门前置知识AC自动机|树状数组解法一次性将所有模式串加入AC自动机,然后处理加入和删除,考虑单次操作对答案的贡献。因为模式串\(T\)在文本串\(S\)中出现的次数之和等价于\(T\)在\(S\)的所有前缀中作为后缀出现的次数之和。这就很和\(fail\)树上跳到根节
  • 2024-07-24[CEOI2011] Matching 题解
    前言题目链接:洛谷。在上一题之后,模拟赛又放了一道KMP重定义相等的问题,但是寄了,故再记之。题意简述现在给出\(1\simn\)的排列\(p\)和序列\(h_1,h_2,\cdots,h_m\)​​,请你求出哪些\(h\)的子串符合排列\(p\)。串\(a_i\)符合一个排列被定义为其从小到大排序后得
  • 2024-07-14SP14887 GOODA - Good Travels 题解
    题目传送门前置知识Tarjan算法|最短路解法缩点后原图就成为了一个有向无环图,此时每个点最多被经过一次,故在求最长路的过程中可以将点权和边权混着转移。上篇题解用拓扑实现查找两点间最长路的做法正确性不会证,遂写了份Dijkstra求最长路。代码#include<bits/stdc++.h
  • 2024-04-07Farey Sequence
    多组测试数据,每组测试数据给你一个正整数\(n\),让你求满足\(\gcd(i,j)=1\)并且\(1\lei<j\len\)的数对个数。随便想一想,得出一个递推式:\(F_n=F_{n-1}+\varphi(n)\)。证明很简单:\(F_n\)是包含\(F_{n-1}\)的,多出来的部分就是小于\(n\)并且和\(n\)互质的数的个
  • 2024-03-18美丽区间
    题目链接戳这Solution因为n很小所以可以n方枚举左右端点,然后实际上就是判断前面一半将69交换后是否是个回文且这个回文不存在反转后没意义的数,对于那几个翻转后没意义的数字随便用字母代替即可,对于前缀和后缀分别哈希然后判断是否相等即可。#include<bits/stdc++.h>#defin
  • 2024-02-26P2719 分队问题 - oiClass
    题意简化求一种分配方案:最大化队伍总数;在满足1的情况下最小化最多人的队伍人数。题目思路由于本题目的数据量高达\(10^6\),且贪心算法也许不成立,所以需要考虑\(n\logn\)的算法!具体的,对于一个人的需求\(a_i\),如果小于\(a_i\)的数先被选走,那么\(a_i\)可能问题:不
  • 2024-02-06字符串hash
    记录23:402024-2-51.字符串hash将字符串转换为hash值。以p=131/13331,将字符串看成P进制数,取一固定值M,求出该P进制数对M的余数,作为该字符的hash值。可以取M=\(2^{64}\)用unsignedlonglong存储这个hash值,这样不用取模,因为如果溢出了就相当于对\(2^{64}\)取模了除了在
  • 2024-01-21CF990E
    分析坑点:(你需要覆盖整个区间,而非只覆盖整数点,例如\(n=3\),\([0,1],[2,3]\)是不够的。)翻译没把这个写上去,搞得我思考了很久样例。看到这个之后,题目可以转化为每个灯可以覆盖\([x,x+l)\),你需要覆盖区间\([0,n)\)中的整数点。如果没有障碍物,我们直接枚举每个灯放哪,复杂度\(O
  • 2023-09-1210408 - Farey sequences - UVa
    题目要求:给定一个数n,求1—n之间有多少对互质的数,phi【i】数组表示i之前有多少个和i互质的数,a【i】表示前phi【1】+phi【2】+……+phi【i】;a【n】数组就是1---n之间互质的数的对数。。#include<stdio.h>#include<string.h>longlonga[1000010],phi[1000010];longlongn,i,j;i
  • 2023-09-01【题解】Harbour.Space Scholarship Contest 2023-2024 D,E,F(CF1864)
    D.MatrixCascade题目描述:有一个大小为\(n\timesn\)的矩阵,由0和1组成。行的编号从上到下依次为\(1\)到\(n\),列的编号从左到右依次为\(1\)到\(n\)。第\(x\)行与第\(y\)列交叉处的单元格记为\((x,y)\)。水月想把矩阵的所有元素都变成0。她可以一步完成以下操作:选择任意
  • 2023-08-13【KMP】border 题解
    题目描述输入输出样例输入abaabaa样例输出17样例解释:f[2][a]=1f[3][a]=1f[4][a]=1f[4][b]=2f[5][a]=1f[5][b]=2f[6][a]=3f[7][a]=4f[7][b]=2以上为>0的f[][],求和=17数据范围限制这一篇同上一篇,都是从以前博客搬过来的,所以真的是
  • 2023-08-11字符串哈希
    没有模的版本constintN=1000010;constintm=131;constintmod=1e9+7;intn,T;chars[N];intf[N],p[N];intmain(){ scanf("%s",s+1);n=strlen(s+1); p[0]=1; for(inti=1;i<=n;i++){ f[i]=f[i-1]*m
  • 2023-05-26HDU 1024 Max Sum Plus Plus(动态规划)
    传送门题意是给你个数字序列,现在让你把这个序列分成m个连续的子序列,且要求这m个子序列的累加和最大。思路:这道题的题意可以理解为问在序列为末尾时,把序列分为m个子序列这个状态时的最大累加和,那么可以得出这个状态应该是由上一个状态转移得来:(因为dp[i][j]表示数到第j个字符时,前j个
  • 2023-05-05洛谷P4824题解
    题面题意:给出字符串s和t,每次操作将s中出现的第一个t删去,直到不能删为止。求最后的串。|s|<=1e6题解:hash做法。(此题也有kmp和权值线段树做法)因为涉及到删除操作,所以我们要动态的实现这个过程。所以考虑开一个栈来存储当前留下的字符。然后每有一个字符入栈,就拿当前
  • 2023-03-25省选武汉联测 11/GDKOI 2023 提高组 D2
    我是sb。T1线段树update写挂挂成70。某种程度上提前看题确实没什么用,会的都会不会的还是不会。游戏签到题。我没签上到是不是可以走了。首先我们只关心每个点往外
  • 2022-12-06树状数组统计一个数前面有几个数比它小,有几个数比它大
    很重要的算法,蓝桥杯遇到n次了#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intn,m;inta[1000010],c[1000010],b[1000010];intlowbit(intx
  • 2022-12-02素数统计
    slojP4006.素数统计题目描述统计区间[a,b]范围内素数的数量。输入格式输入一行两个正整数a和b,表示给定区间为[a,b]。输出格式输出一个整数,表示区间内素数数量。样
  • 2022-11-13点权LCA
    https://www.luogu.com.cn/problem/P8805模板题//点权LCA#include<bits/stdc++.h>usingnamespacestd;intt,idx,n,m;intdep[1000010],f[1000010][30],head[1000010],
  • 2022-10-30【XSY3404】猴戏世家
    法一:题解做法。不太好想。动态维护不太好做,我们考虑先把栅栏最后长什么样维护出来。扫描线,按\(x\)从大到小扫描,过程中维护当前扫描线上的一些区间,每一个区间内的点同
  • 2022-10-29弹珠碰撞
    题目描述链接:https://ac.nowcoder.com/acm/contest/43844/E在一条长度为n的线段上,有m颗弹珠在匀速左右滚动,在1单位时间内,每颗弹珠能滚动1单位距离。第i颗弹珠
  • 2022-10-09“海康威视杯“ 2022年第十四届四川省大学生程序设计大赛 A
    AdjacentSwappinghttps://ac.nowcoder.com/acm/contest/42105/A赛时想出来逆序对+贪心的做法但是最后一小时心态不稳想着必须开出两道题调爆了最后发现只改了一行就