首页 > TAG信息列表 > suf

支持双端插入的可撤销回文自动机

支持双端插入的可撤销回文自动机 打多校看到的科技,板子++ 参考来源:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=53195473 template <class T, int SIZE, T offset> struct Depam { struct Node { int len, pos, fail; int nxt[SI

「CF1661E」 Narrow Components

\(\texttt{「CF1661E」 Narrow Components}\) \(\texttt{Describe}\) 给你一个 \(3\) 行 \(n\) 列的 \(01\) 矩阵 \(a\),其中 \(0\) 表示黑色格子,\(1\) 表示白色格子。 再给出 \(q\) 次讯问,每次询问给出两个整数 \(l,r\) 让你回答区间 \([l,r]\) 白色连通块的数量 \(\texttt{Input

【LGR-113】洛谷 7 月普及组月赛 & JROI R6 解题报告

目录【LGR-113】洛谷 7 月普及组月赛 & JROI R6ABCD 【LGR-113】洛谷 7 月普及组月赛 & JROI R6 因为太菜了所以只能做做普及组的题目这档事。 但正常的普及组比赛肯定也不会出现这么多序列的题吧。我还不会做(悲)。 传送门 A 本题仅需要知道二个性质:相邻两个数的最大公约数为 \(1\)

LeetCode 238 Product of Array Except Self 前缀积&后缀积

Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer. You must write an algorithm t

2022牛客暑期多校训练营3-A.Ancestor(LCA)

题目传送门:https://ac.nowcoder.com/acm/contest/33188/A 题意: • 给出两棵编号 1-n 的树 A B , A B 树上每个节点均有一个权值,给出 k 个关键点的编号,问有多 少种方案使得去掉恰好一个关键点使得剩余关键点在树 A 上 LCA 的权值大于树 B 上 LCA 的权值。 思路:预处理出关键点序列的

LeetCode123 买卖股票的最佳时机 III(贪心)

LeetCode123 买卖股票的最佳时机 III 最多可以完成两笔交易,即分两段做LeetCode121,处理前缀后缀之后,遍历每一个分段节点所带来的收益取最大 class Solution: def maxProfit(self, prices: List[int]) -> int: pre_gains, suf_gains, pre_min, suf_max, l = [0], [0],

2022 训练实录

22-06-24 NOIO2020 #2 游戏 好久没搞 OI 真的蠢了。 恰好立刻转至少,所以设 \(f(x)\) 为钦定 \(x\) 对非平局回合的情况,\(g(x)\) 为恰好 \(x\) 对非平局回合的情况。那么: \[f(x)=\sum^m_{i=x}\binom i n g(i) \]应用二项式反演有: \[g(x)=\sum^m_{i=x}(-1)^{i-x}\binom i n f(i) \]

【题解】【CF1004F Sonya and Bitwise OR】

Analysis 显然用线段树来维护。考虑快速求出左右端点分居左右区间的方案数。 首先按位或和是满足单调性的,按位或的数越多,和越大,那么从左到右枚举右端点,左端点的可行范围一定是从左区间的左端点到左区间的某个位置,且这个位置是递增的。 那么我们就有了单次pushup复杂度为O(区间长度

洛谷SP1716 GSS3 - Can you answer these queries III

题目链接   操作一就是很简单的单点修改。操作二求最大子段和是本题的重点。   最大子段和可能分布在这个节点的左儿子的最大子段和,要么是右儿子的最大子段和,要么是横跨两部分(左儿子的后缀加右儿子的前缀)。而当前节点的最大前缀是\(\max \{pre[ls], sum[ls] + pre[rs]\}\),最

python之处理股票数据的.day文件

读取.day文件保存在Excel中: # "D:\StudyFiles\ClassFile\股票证券实验报告\证券日交易行情和文本基本信息\SHday\sh000001.day" import os import time from struct import unpack import pandas as pd # 获取day文件然后转换为正常文本 def read_data(fname, code): '''

牛客小白月赛39

比赛链接: https://ac.nowcoder.com/acm/contest/11216 A.憧憬 题目大意: 给了 \(n\) 个向量及一个目标向量的起点和终点坐标,判断有没有两个向量相加得到的向量与目标向量平行。 思路: 暴力枚举任意两个向量的组合,然后通过向量平行的性质 \(x_1 * y_2 - x_2 * y_1 = 0\) 去判断一下就

YbOJ-网格序列【拉格朗日插值】

正题 题目大意 有一个\(n\times m\)的网格,在上面填上\([1,k]\)的数字,定义两个长度为\(n\)的序列\(a_i,b_i\)分别表示每一行/每一列的最大值。 求有多少种不同的合法\(a,b\)对。 \(1\leq n,m\leq 10^6,1\leq k\leq 10^9\) 解题思路 不难发现合法的\(a,b\)对只需要满足它们的最大

Leetcode NO.509 Fibonacci Number 斐波那契数

目录1.问题描述2.测试用例示例 1示例 2示例 33.提示4.代码1.递归code复杂度2.动态规划code复杂度 1.问题描述 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: ​ F(0) = 0,F(1) = 1 ​ F(n) = F(n

Hello 2022 A-E

博客地址 视频版讲解 A. Stable Arrangement of Rooks 贪心 #include <bits/stdc++.h> using namespace std; #define inc(x, l, r) for (int x = l; x <= r; x++) void solve() { int n, x; cin >> n >> x; if ((n + 1) / 2 < x) { cout &

【题解】Luogu6656 / LOJ173 模板 Runs

【模板】Runs 题解 润s! By zghtyarecrenj 本文包括:Lyndon Words & Lyndon Array & Runs & Three Squares Lemma。 禁止转载全文,转载部分需要注明出处。 实在太长,已尽量删减( 哇,你古md排版是不是出了点问题 Lyndon tree 是一个非常有趣的东西,但是我现在还没有发现应用,所以先咕着。

2021.12.06 P2501 [HAOI2006]数字序列(动态规划+LIS)

2021.12.06 P2501 [HAOI2006]数字序列(动态规划+LIS) https://www.luogu.com.cn/problem/P2501 题意: 现在我们有一个长度为 n 的整数序列 a。但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列。但是不希望改变过多的数,也不希望改变的幅度太大。 求最小的改变次数和此时

CF1163F - Indecisive Taxi Fee 题解

假设不经过边 \(t\) 的最短路为 \(D_t\),经过的为 \(B_t\),那么答案显然为 \(\min(D_t,B_t-w_t+x)\)。我们只要对每条边把这两者求出来即可。 dij 求出 \(1\to n\) 的任意一条最短路 \(p_{1\sim s}\),如果 \(t\) 不在其上的话,显然必有 \(D_t=\mathrm{dis}(1,n)\),\(B_t=\min(\mathrm{d

(联考)noip92

T1 题目实际上是在给每个石子分配符号,让最后的和最大。 如果石子有正有负,那么最后答案显然就是绝对值之和。 如果全为正或全为负,那么则可以合并两堆石子来达到有正有负的效果。 为了让和最大,合并时做出牺牲的应当是绝对值最小的那一堆石子。 T2 先考虑如何算出 \(n\) 个矩形的交,扫

CF 1061 E

​ 还真没想到能这么做。 ​ 每天都可以买票,第 i 天票价为 \(a_i\) 元,每张票在激活后都可以用 k 天,k 为给定常数,每天可以买多张票,可以任选每张票的激活时间。 ​ 现在有 q 组询问,每组形如 l , r 表示只考虑第 l 天到第 r 天,要求每天都至少有一张票处于激活状态,求最小代价 ​ 不难

AGC030 简要题解

题目链接 第一次尝试做一整场AGC,结果做了一整天。。。还是开个博客记录一下吧。 A - Poisonous Cookies 一道难度评分高达90分的思博题。 #include<bits/stdc++.h> using namespace std; int a,b,c; int main(){ scanf("%d%d%d",&a,&b,&c); printf("%d",b+min(c,a+b+1)); retu

【ybtoj高效进阶 21261】头文字 C(单调队列优化DP)

头文字 C 题目链接:ybtoj高效进阶 21261 题目大意 给你一个数组,然后问你最多能分成多少段,使得每一段的值不增。 每一段的值是这一段的数的和。 思路 首先我们把序列翻转,变成要单调不降。 然后考虑 DP,设 \(f_{i,j}\) 为把前 \(i\) 个数最多能分成多少段(最后一段是 \(j+1\sim i\))。

[ARC124E] Pass to Next

前言 这题补了一万年,终于过了。 模拟赛撞原题不会可太艹了 题目 AtCoder 题目大意: 给定一个整数 \(N\) 表示人数,接下来给出序列 \(A\),\(A_i\) 表示第 \(i\) 个人拥有的球的数量。 这 \(N\) 个人坐成一个环,接下来他们会同时给右边那个人自己的一部分球(当然可以全给或者不给),记操作

【2021noip模拟赛day5】A. 旅游计划

【题意】 求基环树中删去一条边得到的生成树中的直径最小值 【分析】 显然,删去的一定是环上的边才能得到生成树 然后,我们把环拆成链,得到$a_1,a_2,...,a_k$ 求出以$a_i$为根的树中的最大深度$dep_i$ 然后考虑生成树的直径有可能有以下几种情况: 1.最大深度在某个树中,直接跑一次树的

题解 数据恢复

传送门 是一种套路的变式 如果不考虑祖孙关系的限制,临项扰动一下就可以得到 \(\frac{a}{b}\) 小的优先的策略 但现在有些点有一些前置点要考虑 先有一个结论:按比值小的贪心选点,若选到一个点时其父节点还没选,则在选中其父节点后一定会立刻选这个点 然后就可以缩点,把这些一定连续选

动态凸壳

我并不会求静态二维凸包,但是在培训中碰到几个需要使用平衡树来维护凸包的计算几何题 二维凸包 凸包:求一个周长最小的,并且能够包含所有给定点的多边形。当多边形表面存在凹陷时,根据三角不等式\(\begin{cases}a+b>c\\b+c>a\\a+c>b\end{cases}\),一定没有直接把最短边连起来优 维护动