随笔分类 -  数据结构

摘要:「BalticOI 2021 Day1」Inside information 题目大意 有 \(n\) 个集合 \(S_i\) ,一开始 \(S_i=\{i\}\)。 执行 \(m\) 个操作: 选择 \(u,v\) ,令 \(S_u,S_v:=S_u\cup S_v\)。 对于 \(u,x\),回 阅读全文
posted @ 2022-01-17 00:45 chasedeath 阅读(309) 评论(0) 推荐(0)
摘要:CF1286D - LCC 题目大意 给定$n$个点,每个点初始在$x_i$,速度为$v_i$,且有$p_i$概率向右走,$1-p_i$向左走 定义一种状态的权值为最先碰撞的两个点碰撞的时间(如果没有碰撞则为0) 求期望权值 分析 显然第一次碰撞一定发生在相邻两个点之间,因此不同的碰撞时间只有最多$ 阅读全文
posted @ 2021-05-31 09:55 chasedeath 阅读(99) 评论(0) 推荐(0)
摘要:CF1280H - Make Square 题目大意 给定一个序列$a_i$ 设一个数$n$的分解为$n=\prod prime_i^$ 每次查询一个区间$[l,r]$ 询问在区间内选两个数$a_i,a_j (i\ne j)$ 使得$a_i\cdot a_j$的分解$\sum (c_i\mod 2) 阅读全文
posted @ 2021-05-30 21:03 chasedeath 阅读(116) 评论(0) 推荐(0)
摘要:CF1483F - Exam 题目大意 给定$n$个不同串$s_i$,令$s_i\sub s_j$表示$s_i$是$s_j$的子串 求所有二元组$(i,j)(i\ne j)$满足 \(s_i\sub s_j,\nexists k\ne i,k\ne j,s_i\sub s_k\sub s_j\) 分 阅读全文
posted @ 2021-05-27 21:45 chasedeath 阅读(117) 评论(0) 推荐(0)
摘要:CF1119F - Niyaz and Small Degrees 题目大意 给定一棵带权树,对于每个$k\in[0,n-1]$ 求出删除一个权值最小的边集使得没有一个点度数$>k$ 分析 单个$k$ 考虑对于单个$k$的计算,可以有如下$O(n)$的$dp$做法 令$dp_{u,0/1}$表示对于 阅读全文
posted @ 2021-05-26 19:58 chasedeath 阅读(94) 评论(0) 推荐(0)
摘要:CF1037H - Security 题目大意 给定一个串$S$,每次查询一个区间$[l,r]$和一个串$T$ 求$[l,r]\(内字典序\)>T$的最小的子串$R$ 分析 复习$\text$ 显然可以枚举$T$匹配$R$的长度,然后枚举下一位字符,判断形成的串是否在$[l,r]$内有出现 匹配问题 阅读全文
posted @ 2021-05-26 10:29 chasedeath 阅读(108) 评论(0) 推荐(1)
摘要:CF1446F - Line Distance 题目大意 给定$n$个点$P_i$,在每个点对之间连一条线$P_iP_j$ 求所有线到原点距离的第$k$小 分析 这个$k$大问题的$k$是$O(n^2)$级的,因此不是调整,可以考虑二分答案$L$ 考虑如何确定$d(O,P_iP_j)>L$,容易发现 阅读全文
posted @ 2021-05-23 11:45 chasedeath 阅读(115) 评论(0) 推荐(0)
摘要:CF1175G - Yet Another Partiton Problem 题目大意 给定序列$a_i$,现在将其分成$k$段,每段$[l,r]\(的权值定义为\)(r-l+1)\max{a_}$ 求最小化权值总和 分析 显然有$\mathbb$的$dp$ $dp_{i,j}$表示前$i$个分了$ 阅读全文
posted @ 2021-05-23 11:14 chasedeath 阅读(155) 评论(0) 推荐(0)
摘要:CF1303G - Sum of Prefix Sums 题目大意 定义一个数列的$a_1,a_2,\cdots a_n$的权值为$\sum (n-i+1)a_i$ 对于一棵带点权的树,求所有路径数列最大的权值 分析 首先对于路径问题可以考虑无脑树分治 假设确定一条路径到达根的$b_1,b_2,\c 阅读全文
posted @ 2021-05-23 10:48 chasedeath 阅读(54) 评论(0) 推荐(0)
摘要:CF1477E - Nezzar and Tournaments 题目大意 有两队人$a_i,i\in[1,n],b_j,j\in[1,m]$,现在把他们放在一起排成一行$c_i$ 顺次给每个人计分,初始$s_0=k$ \(s_i=\max\{0,s_{i-1}+c_i-c_{\max\{i-1,1 阅读全文
posted @ 2021-05-21 11:48 chasedeath 阅读(151) 评论(0) 推荐(0)
摘要:CF1051G - Distinctification 题目大意 对于一个二元组集合${(a_i,b_i)}$ 每次可以进行操作 1.如果存在$a_i=a_j$,可以花费$b_i$代价$a_i$增加1 2.如果存在$a_i=a_+1$,可以花费$-b_i$代价使$a_i$减少1 现在依次向集合插入$ 阅读全文
posted @ 2021-05-18 21:47 chasedeath 阅读(123) 评论(0) 推荐(0)
摘要:「USACO 2021 US Open Platinum」United Cows of Farmer John 考虑依次枚举右端点$i$,计算左边合法的方案数,设一个数$x$上次出现的位置为$lst_x$ 则$i$能够作为右端点的区间就是$[lst_+1,i-2]$ 考虑什么样的位置可以作为左端点, 阅读全文
posted @ 2021-05-13 12:23 chasedeath 阅读(304) 评论(0) 推荐(0)
摘要:CF1368G - Shifting Dominoes 题目大意 给定一个被$1\times 2$的骨牌(横向或者竖向)铺满的方格图 现在可以拿走一个骨牌,之后任意一个骨牌可以沿着其放置方向左右移动至多一步 求最终两个空位所在不同位置的方案数 分析 观察一个空位的移动 如果上/下/左/右边是一条骨牌 阅读全文
posted @ 2021-05-10 21:01 chasedeath 阅读(98) 评论(0) 推荐(0)
摘要:CF1276F - Asterisk Substrings 题目大意 给定串$S,|S|=n$,设一个串的子串集合为$Sub(S)$ 求$|Sub(S) \cup Sub(+S[2:n])\cup Sub(S[1:1]++S[3:n])\cup \cdots|$ 其中*表示特殊字符而不是通配符 分析 阅读全文
posted @ 2021-05-09 08:12 chasedeath 阅读(75) 评论(0) 推荐(0)
摘要:CF1379F2 - Chess Strikes Back (hard version) 题目大意 给定一个$2n\times 2m$的交错棋盘,一个位置$(i,j)$可以放当且仅当$2|i+j$ 给定$q$次操作,每次操作在一个位置加入或删除一个障碍 求是否存在一种方案能在棋盘上放入$nm$个互不 阅读全文
posted @ 2021-05-07 16:10 chasedeath 阅读(105) 评论(0) 推荐(0)
摘要:CF1217F - Forced Online Queries Problem 题目大意 $n$个点无向图,$m$次操作,每次加入/删除一条边,或者查询两个点连通性 $lst$为上次查询的连通性情况,即$lst={0,1}$ 加密方式为$x=(x'+lst-1)\mod n+1$ 吐槽 如果你管这叫 阅读全文
posted @ 2021-05-07 12:08 chasedeath 阅读(166) 评论(0) 推荐(0)
摘要:「HAOI2018」字串覆盖 这自然有后缀数组和后缀自动的写法,我写的是后缀数组 现对于$A,B$两串拼接后建立$\text$ 对于查询的四个参数$[s,t,l,r]\(,在\)\text\(上找到能够匹配\)[l,r]\(的\)\text\(区间\)[l',r']$ 这个$[l',r']\(就用\ 阅读全文
posted @ 2021-04-07 14:04 chasedeath 阅读(124) 评论(0) 推荐(0)
摘要:[NOI Online 2021 提高组] 积木小赛 题目大意:给定串$A$,\(B\),求$B$中有多少本质不同的连续子段是$A$的子序列 \(n\leq 3000\) 暴力枚举$B$中的子段,同步维护与$A$的匹配指针$p$ 每次插入一个字符$c$,找到$A$中$p+1$之后第一个字符$c$,令 阅读全文
posted @ 2021-03-27 12:15 chasedeath 阅读(137) 评论(0) 推荐(0)
摘要:Codechef March Challenge 2021 Random Walk Queries(RWALKS) (动态点分治) 题目大意: 对于给定的无根树$T$,要求强制在线维护两种操作 1.游走$(u,d)$,以$u$为根在树上游走,从$u$开始,最多走$d$步,每次随机从儿子中选择一个点 阅读全文
posted @ 2021-03-17 13:22 chasedeath 阅读(76) 评论(0) 推荐(0)
摘要:「JOISC 2020 Day3」收获 分类讨论.jpg 分析一棵苹果树被不断摘掉的过程,找到第一个摘它的人$i$ 此后,每次摘它的人,就是$i$前面第一个距离它$\ge C$的人,不妨设其为$nxt_i$ 显然,$i,nxt_i$的关系,会构成基环内向树森林,每条内向边有一个权值$w_i$ 容易$ 阅读全文
posted @ 2021-03-13 13:31 chasedeath 阅读(179) 评论(0) 推荐(0)