08 2024 档案

题解:CF914C Travelling Salesman and Special Numbers
摘要:题意 定义 popcount(x)x 二进制下 1 的个数。 定义对 x 的一次操作:xpopcount(x),显然任意正整数经过若干次操作后会变为 1。 给定 n
6
0
0
题解:CF915G Coprime Arrays
摘要:题意 我们称一个大小为 n 的数组 a 互质,当且仅当 gcd(a1,a2,,an)=1。 给定 n,k,对于每个 i (1ik),你都需要确定这样的数组的个数——长度为 n 的互质数组 a ,满足对
10
0
0
题解:CF915C Permute Digits
摘要:题意 给出两个正整数 a,b。在十进制下重排 a,构造一个不超过 b 的最大数,不能有前导零。允许不去重排 a。 分析 因为位数小于等于 19,考虑搜索。 开个桶维护 a 中每个数码的个数,按位搜索即可。 每一位贪心地从大到小枚举,显然这是最优的。 最劣复杂度
4
0
0
题解:CF916D Jamie and To-do List
摘要:题意 维护一个数据结构,支持以下几种操作: set ai xi:设置任务 ai 的优先级为 xi,如果该列表中没有出现则加入该任务。 remove a_i:删除该任务。 query a_i:求优先级比 ai 小的任务个数,如果没有则输出 1。 undo sum
6
0
0
题解:CF916B Jamie and Binary Sequence (changed after round)
摘要:题意 把一个数分解成恰好 k2ai 次方的和,可以重复,要求保证最大的 ai 要尽可能的小时,a 的字典序尽可能大,输出序列 a。 分析 首先我们借助二进制拆出一个满足 n=2ai 序列 a,满足 a
5
0
0
题解:CF235C Cyclical Quest
摘要:题意 给定一个主串 Sn 个询问串,求每个询问串的所有循环同构在主串中出现的次数总和。 分析 后缀自动机好题。 循环同构的过程可以看作从该串的头部删除一个字符,并在尾部加入一个字符。 在后缀自动机上,跳 parent 树的过程就相当于删除头部的若干个字符。 所以我们可以套路地把
7
0
0
题解:CF70D Professor's task
摘要:题意 实现以下两种操作: 往点集 S 中添加一个点 (x,y)。 询问点 (x,y) 是否在点集 S 的凸包中。 分析 动态凸包板子。 建议先完成 P2521 [HAOI2011] 防线修建。 上题维护的是上半个凸包,本题维护上下两个。 将凸包中的点按 x
5
0
0
题解:P2521 [HAOI2011] 防线修建
摘要:题意 给定若干个点,实现下列操作: 删除一个点。 查询上凸包的周长。 分析 建议先完成【模板】二维凸包。 对于这个删除操作,我们没有好的方法去在线维护它。 考虑离线询问。 这样删除操作就变成了插入操作。 插入一个新点有如下两种情况: 新点在凸包内。 新点在凸包外。 我们回忆一下 Andrew 算法的
4
0
0
题解:P7401 [COCI2020-2021#5] Planine
摘要:题意 现有一座上下起伏的山。它可以抽象为一个包含 nn 为奇数)个点 (xi,yi) 以及 (x1,inf)(xn,inf) 的多边形。 对于所有满足 i1inimod2=1
7
0
0
题解:SP1182 SORTBIT - Sorted bit squence
摘要:题意 将区间 [m,n] 的所有整数按照其二进制位表示的数中 1 的数量从小到大排序。如果 1 的数量相同,则按照数的大小排序。求序列中第 k 个数。 其中,负数使用补码来表示:一个负数的二进制数与其相反数的二进制数之和恰好等于 232。 分析 考虑用
4
0
0
题解:P3266 [JLOI2015] 骗我呢
摘要:题意 有一个 n×m 的数组 xi,j(1in,1jm),满足: xi,j[0,m] \(\forall i \in [1,n],\forall j\in[1,m),x_{i,j}<x_{i,j+1}
8
0
0
题解:P7475 「C.E.L.U-02」简易输入法
摘要:题意 给定词典 U,每次询问读入一个字符串 s,以及一个整数 x 对于这个字符串有以下几种情形: 设siUssi 的前缀的个数为 a。 当 ax 时,请输出按照以输出次数从大
5
0
0
题解:UVA1479 Graph and Queries
摘要:分析 先看删边操作。 由于并不保证是森林,所以我们没有好的方法来在线维护删边相关的操作。 所以,我们可以套路地把询问离线,然后倒着操作。 删边变成加边。 需要注意的是权值的修改,记录时要把当前权值和修改的权值反过来。 然后我们发现这个操作很经典,维护方式和 [HNOI2012] 永无乡 差不多。 可
4
0
0
题解:CF1995C Squaring
摘要:题意 给定序列 a,每次操作可以使 aiai2,求使 a 不降的最少操作次数。 分析 因为 1k=1,所以无解的情况只有  ai=1 j[1,i),aj>1。 在有解的情况下,假设对
5
0
0
题解:P4847 银河英雄传说V2
摘要:题意 给定 n 个长度为 1 的序列,第 i 个序列中有一个元素,值为 ai,接下来有三种操作: M x y,表示把 x 所在的序列放到 y 所在的序列之后。如果 x,y 已经在同一个序列,则不进行操作。 D x,表示把 x 所在的序
5
0
0
题解:P7952 [✗✓OI R1] 天动万象
摘要:提供一种和第一篇题解不同的理解思路。 题目分析 看到操作 1:拿 dfs 序水水就行了。 看到操作 2:??? 特殊情况 我们考虑一下特殊情况下操作 2 怎么处理。 假如这棵树是一条链。 设从根到叶节点权值如下:(随便赋的) 节点编号 1 2 3 4 5 6 权值 1 2 3
9
0
0
题解:UVA11996 Jewel Magic
摘要:题意 给你一个 01 串,要求完成以下操作: 单点插入。 单点删除。 区间翻转。 查询两点开始的 LCP。 分析 先看查询操作,如何得到 LCP 的长度? 我们可以考虑二分长度 l,然后用哈希检验区间 [p1,p1+l1] 是否等于区间 [p2,p2+l1]。 平衡树
3
0
0
题解:AT_abc354_g [ABC354G] Select Strings
摘要:题目分析 题意 给定 n 个字符串,要求从中选出若干个组成一个集合,且集合中每个字符串都互不包含。 求集合中字符串的权值的和的最大值。 分析 首先很容易想到用 KMP 判两个串是否存在包含关系。 考虑建图,将不能同时存在于一个集合中的串的节点相连。 然后发现只需求出这个图的最大权独立集就行了
6
0
0
题解:CF590E Birthday
摘要:题目分析 题意 给定 n 个字符串,要求从中选出若干个组成一个集合,且集合中每个字符串都互不包含。 求集合最大包含几个字符串。 分析 本题弱化版:[ABC354G] Select Strings 就是求一个最长反链,并求构造方案。 求构造方案还是比较有意思的。 建议先做 P4298 [CTS
2
0
0
题解:P5217 贫穷
摘要:题意 维护一个字符串,支持以下操作: I x c,在第 x 个字母后面插入一个 cD x,删除第 x 个字母。 R x y,反转当前文本中的区间 [x,y]。 \(\texttt{P x
8
0
0
题解:CF381B Sereja and Stairs
摘要:题意 给定 m 个元素的序列 b 。 取若干 b 中元素组成新序列 a 使得 a1<a2<a3<<ai1<ai>ai+1>>a|a|1>a|a|。 给出一种使得 |a| 最大的方案。 分析 考
3
0
0
题解:AT_joisc2017_f 鉄道旅行 (Railway Trip)
摘要:题意 鉄道旅行 (Railway Trip) 分析 非常神仙的倍增做法。 我们设 li,j 表示从 i 点出发,停靠 2j 站后能抵达的最左位置。 同理设 ri,j 表示从 i 点出发,停靠 2j 站后能抵达的最右位置。 考虑如何更新这
9
0
0
题解:SP3109 STRLCP - Longest Common Prefix
摘要:三倍经验: UVA11996 Jewel Magic P4036 [JSOI2008] 火星人 题意 维护一个字符串 S,支持以下操作: Q i j:输出 LCP(S[il],S[jl]) \(R\ i\ cha
5
0
0
题解:AT_joisc2019_h ランプ (Lamps)
摘要:题意 走廊上有排成一列的 n 盏灯,给出了一个 01S 表示其开关状态(1 表示打开,0 表示关闭)。现在想要把这 n 盏灯变成目标状态 T。 你有三种操作: OFF 操作:选择一个区间,将区间内所有的灯关闭。 ON 操作:选择一个区间,
9
0
0
题解:CF1290E Cartesian Tree
摘要:题意 给定一个 1n 的排列 a。 对于一个整数 k[1,n],将排列中 k 的项构成的子序列建大根笛卡尔树。这棵笛卡尔树的所有节点的子树大小之和记为 skk[1,n]sk
7
0
0
P1708 [入门赛 #21] 星云 hard ver. 题解
摘要:解法 因为 n7,所以可以对于每个 n 进行搜索。 定义 dpi,j 为长度为 i,各数位之和为 j 的数的个数。 暴搜处理 dp 数组。 void dfs(int n, int sum, int mx) { if(!n) return dp[
13
0
0
P9912 [COCI 2023/2024 #2] Zatopljenje 题解
摘要:解法 一组询问 先考虑一个简化版的情况,如果只有一组询问怎么处理。 那不直接打暴力 可以考虑一个常见的技巧:每个位置赋一个颜色 ci,满足: ci={1hi>x0hix这样我们就把原来的序列变成了
16
0
0
P10223 [COCI 2023/2024 #3] Eurokod 题解
摘要:解法 模拟题意即可。 先按组长评出的顺序赋上得分。 然后将其他成员给出的评分进行排序,然后赋上相应的得分。 这一步可以使用 pair<int, int> 进行存储。 最后再按总得分为第一关键字,成员评分为第二关键字排序。 这里可以用自定义结构体存储。 按题意输出即可。 Code #include<b
20
0
0
P3191 [HNOI2007] 紧急疏散EVACUATE 题解
摘要:题目描述 P3191 HNOI2007 紧急疏散EVACUATE 题目解法 看到数据范围:网络流 看到求时间:二分或分层 再看到给出的数据:BFS 所以我选择网络流+分层+BFS 建图 首先每个空地 (i,j) 都有一个人,所以从源点 s 连一条流量为 1 的边到 \((i,
5
0
0
题解:CF37E Trial for Chief
摘要:题目分析 题意 给一张全白的图,每次可以将一个四联通块染黑或染白,求转化到目标最少染色次数。 分析 考虑倒着想,由目标染回原图。 易得倒着染回去和正着染的最少染色次数相同。 所以我们考虑从最后的图入手。 考虑从某一个点 (i,j) 开始染色。 尝试进行建图。 在同样的颜色间转移的代价是 \(
4
0
0
题解:CF173B Chamber of Secrets
摘要:题目分析 题意 题干很丑陋 于是自己转换了一下问题: 可以考虑成倒着跑,从 (1,1) 出发,方向向右,抵达 (n,m+1)。 每次遇到 # 可以以 1 的代价更换方向。其余情况均只能以原方向前进。 求最小代价。 分析 考虑分层图最短路。 每一层只能沿一个方向移动,边权为
5
0
0
P6743 [BalticOI 2014 Day2] Senior Postmen 题解
摘要:题目描述 P6743 BalticOI 2014 Day2 Senior Postmen 题目解法 看到题目想到直接爆搜。 根据题意,只要找出所有互不相交的简单环即可。题目保证了合法性。 跑 dfs,每次到达一个点 u 就将其放入栈 stk 中。如果栈 stk 中已经有点 \
7
0
0
CF1746F Kazaee 题解
摘要:CF1746F Kazaee 题解 题目描述 CF1746F Kazaee 题目解法 看到题目能想到一个相当劣的树状数组做法:先离散化,然后对每个数开个树状数组,每次查询区间内每个数的个数。 这个做法相当劣,修改 O(logn),查询 O(nlogn),总的复杂度为 \(O
7
0
0
P8575 「DTOI-2」星之河 题解
摘要:P8575 「DTOI-2」星之河 题解 题目描述 P8575 「DTOI-2」星之河 题目解法 看题目就能感觉到是一道求偏序的题。所以我们先找偏序关系。 RediBluei 的关系题面已经给出,现在考虑子树关系。 自然而然地联想到 dfs 序。 先求出每个点的 dfs 序
7
0
0
CF1494B Berland Crossword 题解
摘要:CF1494B Berland Crossword 题解 题目描述 CF1494B Berland Crossword 题目解法 思路 不难发现,会导致行和列互相干扰的格子只有矩阵角上的四个格子。 共有 4 个格子,有 24=16 种情况。 可以暴力枚举所有情况。 每次只需要判断该
5
0
0
CF58D Calendar 题解
摘要:CF58D Calendar 题解 题目描述 CF58D Calendar 题目解法 暴力题。 我们发现输出的字符串中除了每一行最后一个串没有分割字符,其余的都有。 并且每一行只会有两个字符串。 我们可以在每个输入的字符串后面加上分割字符后再进行排序,这样可以保证字典序最小。 每次枚举一个字符串,找
3
0
0
CF237B Young Table 题解
摘要:CF237B Young Table 题解 题目描述 CF237B Young Table 题目解法 题目中要求满足以下条件: 对所有的 i,j(1<in,1jci),满足 ai,j>ai1,j 对所有的 \(i,j (1\leq i
2
0
0
CF895B XK Segments 题解
摘要:CF895B XK Segments 题解 题目描述 CF895B XK Segments 题目解法 朴素想法 最简单的想法就是枚举二元组 (i,j) 的第一项 i,然后再枚举 j,找到一个满足条件的 aj,然后更新答案。 很明显,该做法的时间复杂度为 \(O(n^
8
0
0
[AGC048A] atcoder < S 题解
摘要:题目 [AGC048A] atcoder < S 分析 观察目标字符串,发现对于 atcoder 这个字符串,第一位 a 是最小的字符,而第二位 t 是最大的字符。容易得到一个贪心思路。 找到第一个大于 a 的,然后和第一位交换。 找到第一个大于 t 的,然后和第二位交换。 考虑两种特殊情况。 本身
9
0
0
P9837 题解
摘要:奇怪的构造方法居然过了... 本构造方法暂无证明,只是提供一种乱搞做法。 对于奇数的情况 首先我们从样例入手(为 5 的情况): 1 2 3 4 2 5 3 5 1 4 5 4 3 1 2 然后我们对样例进行一点改造: 1 2 3 4 1 5 3 5 2 4 5 4 3 1 2 我们将这个数
4
0
0
[ARC023D] GCD区間 题解
摘要:[ARC023D] GCD区間 upd on 2024.1.26:修正了 ST 表的时间复杂度分析。 一道数据结构维护 gcd 的好题。 首先,大家应该都能想到一种大暴力:枚举左右端点 l,r, 暴力计算 gcd 然后开个哈希表记录每个 gcd 出现了几次。
6
0
0
题解:P5680 [GZOI2017] 共享单车
摘要:题目分析 出题人是擅长隐藏题意的 建树 首先给你一张无向图,然后指定一个根节点 k,从根节点开始沿最短路到每一个节点。如果到某个节点有多条最短路径,选择上一个节点编号最短的。 考虑记录前驱的 Dijkstra。 namespace DJ { int dis[maxn], pre[maxn],
10
0
0
深色
回顶
收起
点击右上角即可分享
微信分享提示