思维题目
文章平均质量分 71
逍遥Fau
为伊蕾娜献上心脏!
展开
-
Codeforces1609C Complex Market Analysis (思维)
题目链接: Complex Market Analysis大致题意给定一个长度为nnn的序列aaa. 给定间隔kkk.定义: f(i,j)f(i, j)f(i,j) 表示从位置iii开始, 选取元素ai,ai+k,ai+2k,...,ai+jka_i, a_{i + k}, a_{i + 2k}, ..., a_{i + jk}ai,ai+k,ai+2k,...,ai+jk , 满足选取的所有元素的乘积为一个质数.问: 对于i,j∈[1,n]i, j \in [1, n]i,j∈[1,n].原创 2021-11-30 16:54:17 · 628 阅读 · 0 评论 -
Codeforces1607C Minimum Extraction (思维)
题目链接: Minimum Extraction大致题意给定一个长度为nnn的序列, 第iii个元素为aia_iai.每次操作选择出序列中最小的元素, 然后移除该元素, 并使得序列中剩余所有元素的值都减去该元素值. (当序列长度为111时, 不可再进行操作)问: 你可以执行任意次操作, 输出序列中最小元素的最大值.解题思路思维 这不是线段树板子题? 关于DS选手想了一会儿没思路打了个线段树上去这件事.jpg我们考虑到如果对于整个序列进行从小到大排序, 每次操作后, 整个序列的相对大小其实是不原创 2021-11-15 20:20:28 · 723 阅读 · 0 评论 -
HDU6992 Lawn of the Dead (线段树)
题目链接: Lawn of the Dead大致题意给定一个n×mn \times mn×m的网格, 你初始位于(1,1)(1, 1)(1,1), 你只能向下或向右走.网格中有kkk个地雷, 地雷所在的格子是不能去的.问: 你最终可以到达多少个不同的方格?解题思路思维我们考虑到n,mn, mn,m的值域太大了, 我们是无法模拟出所有过程的.考虑到只能向右或向下走, 因此我们可以这样思考: 设有一个长度为mmm的数组vis[]vis[]vis[], 表示第i−1i - 1i−1行的所有位置原创 2021-10-26 16:39:51 · 98 阅读 · 0 评论 -
HDU6957 Maximal submatrix (单调栈)
题目链接: Maximal submatrix大致题意给定一个n×mn \times mn×m的矩阵, 求满足要求的最大面积子矩阵.要求: 该子矩阵的每一列从上向下看不递减.解题思路➡️题目弱化版点这里⬅️单调栈如果你做过了题目的弱化版, 你会发现这个题实际上是一个二维版本.我们需要对于每一行都求一次答案即可.AC代码#include <bits/stdc++.h>#define rep(i, n) for (int i = 1; i <= (n); ++i)usi原创 2021-10-20 20:07:06 · 135 阅读 · 0 评论 -
P4062 Yazid 的新生舞会 (树状数组维护三阶前缀和)
题目链接: P4062 Yazid 的新生舞会大致题意给定一个长度为nnn的序列, 问有多少个区间[l,r][l, r][l,r]满足, 区间中有某个数字出现次数严格大于区间长度的一半.解题思路思维 + 高阶前缀和 + BIT (好神奇的题)我们考虑枚举每个数字作为区间严格众数时的贡献.我们不妨认为当前枚举的数字numnumnum为111, 其余数字为000. 假设区间[l,r][l, r][l,r]满足要求, 则区间中111的数量需要严格大于000的数量. 由于要求区间中111的数量, 我们不原创 2021-10-14 15:27:33 · 359 阅读 · 0 评论 -
Codeforces1592E Bored Bakry (思维)
题目链接: Bored Bakry大致题意给定一个长度为nnn的序列, 第iii个数字为aia_iai.现要求选择一个尽可能长的区间[l,r][l, r][l,r], 满足al & al+1& al+2...& ara_l \ \& \ a_{l+1} \& \ a_{l+2} ... \& \ a_ral & al+1& al+2...& a原创 2021-10-08 15:01:42 · 177 阅读 · 0 评论 -
Codeforces1592D Hemose in ICPC ? (欧拉序)
题目链接: Hemose in ICPC ?大致题意给定一棵有nnn个顶点, n−1n - 1n−1条边的树.定义: Dist(a,b)=a,b两点间路径的gcd的最大值.Dist(a, b) = a, b两点间路径的gcd的最大值.Dist(a,b)=a,b两点间路径的gcd的最大值.我们可以进行最多121212次询问, 每次询问给出一个点集, 系统会返回当前点集的所有点对中的最大DistDistDist.最终需要输出两个点a,ba, ba,b, 要求最大化Dist(a,b)Dist(a, b)原创 2021-10-06 16:39:01 · 190 阅读 · 2 评论 -
Codeforces1592C Bakry and Partitioning (思维)
题目链接: Bakry and Partitioning大致题意给定一棵有nnn个节点的树, 第iii个节点有权值wiw_iwi.问你能否把这棵树分成[2,k][2, k][2,k]个部分, 使得每部分中所有节点的异或和相同.解题思路思维 (至暗时刻, 我比赛时在干什么啊!!)首先考虑到如果整棵树上的所有节点, 异或和sum==0sum == 0sum==0, 那么我们一定可以把整棵树拆成两部分, 满足题意.我们可以选择任一叶子结点xxx, 然后删除该节点到其父亲的边, 这样两部分的结点异原创 2021-10-06 15:50:45 · 189 阅读 · 1 评论 -
Codeforces1561B Charmed by the Game (思维)
题目链接: Charmed by the Game大致题意A和B玩一个游戏, 两个人轮流发球(最初时, 可以A先发, 也可以B先发).如果A发球, B接住了, 称为"破发", 反之依然.如果A发球, B没接住, A赢. 若B接住了, B赢. 反之依然.现给出A和B胜利的次数, 问可能出现的破发情况有多少种, 并输出每种情况下的破发次数.解题思路思维 (感觉这个题思维量真的高)首先我们考虑, 其实发球情况只有两种, 一种是A先手, 另外一种是B先手. 我们不妨讨论A先手发球的情况, 另外一种原创 2021-09-28 16:39:25 · 248 阅读 · 0 评论 -
Codeforces540B School Marks (思维 贪心 构造)
题目链接: School Marks大致题意有一个长度为nnn的数组(nnn为奇数)a1,a2,...,ana_1, a_2, ..., a_na1,a2,...,an由于某些原因,数组丢失了一部分数,现在只剩下了前kkk个数 a1,a2,...,aka_1, a_2, ..., a_ka1,a2,...,ak请你补全丢失的n−kn - kn−k个数,并使得补全后的数组能够满足以下性质:数组中的元素的取值范围为[1,p][1, p][1,p]。数组中所有元素的和不大于xxx数组中原创 2021-09-24 20:09:28 · 89 阅读 · 0 评论 -
小w的糖果 (差分)
题目链接: 小w的糖果大致题意有一个长度为nnn的数组, 初始情况数组内所有的元素均为000, 进行mmm次如下三种操作:① 给[pos,n][pos, n][pos,n]区间所有元素+1② 给[pos,n][pos, n][pos,n]区间的所有元素加上一个首项为1, 公差也为1的等差数列.③ 给[pos,n][pos, n][pos,n]区间的所有元素加上一个1,4,9,16,...1, 4, 9, 16, ...1,4,9,16,...的平方数列.最终输出序列中每个位置的值mod 原创 2021-09-17 18:20:28 · 555 阅读 · 1 评论 -
Codeforces1556C Compressed Bracket Sequence (思维) (好题)
题目链接: Compressed Bracket Sequence大致题意给定一个数字序列aaa, 奇数位置表示有多少个左括号, 偶数位置表示有多少个右括号.现在问有多少个连续的子段, 满足子段中的括号可以正确匹配.解题思路思维 (感觉这个题好难啊, 可能是我不配打ACM, 555)我们不妨枚举lll, 统计以当前lll处的左括号为起始的合法序列数量. 这样我们可以保证答案是不重不漏的.此时产生的贡献有两种情况: ①lll位置的左括号与后续右括号成功匹配时的贡献. ②lll位置开始的合法子序列原创 2021-08-31 19:12:07 · 257 阅读 · 0 评论 -
Codeforces1562D2 Two Hundred Twenty One (hard version) (思维)
题目链接: Two Hundred Twenty One (hard version)大致题意给定长度为n, 且仅由’+’, '-'构成的序列, 分别表示这个位置的值为+1, -1.现在从中取出[l,r][l, r][l,r], 组成长度为r−l+1r - l + 1r−l+1的新序列aaa. 定义: C=a1−a2+a3−a4...C = a_1 - a_2 + a_3 - a_4 ...C=a1−a2+a3−a4...我们可以任意删除某些位置的数字(删除后, 该位置后的数字会向前补位),原创 2021-08-29 14:42:45 · 197 阅读 · 0 评论 -
Codeforces1562C Rings (思维)
题目链接: Rings大致题意给定一个长度为nnn二进制串, 要求你选择出两个长度大于等于⌊n2⌋\lfloor \frac n2 \rfloor⌊2n⌋的, 且不相同区间. 使得这两个区间的二进制子串构成的数字a,ba, ba,b 满足 a=b∗k(k≥0)a = b * k (k \ge 0)a=b∗k(k≥0).题目要求: 输出任意一组合法区间.解题思路思维 (感觉这题的思路有点做构造题的感觉)首先如果二进制串是全1串, 则我们选取[1, n - 1], [2, n]一定满足题意.反原创 2021-08-27 10:25:10 · 243 阅读 · 0 评论 -
Codeforces1553E Permutation Shift (思维)
题目链接: Permutation Shift大致题意你有初始长度为nnn的序列a={1,2,3,...,n}a = \{1, 2, 3, ..., n\}a={1,2,3,...,n}.你可以将整个序列右移k(k∈[0,n−1])k(k \in [0, n - 1])k(k∈[0,n−1])位, 超出的部分会移动到序列开头. 随后有至多m(m∈[0,n3])m(m \in [0, \frac{n}{3}])m(m∈[0,3n])次交换操作, 可以选择序列中任意两个元素进行交换.现给出序列bbb,原创 2021-08-23 09:54:52 · 128 阅读 · 0 评论 -
Codeforces1554D Diane (构造)
题目链接: Diane大致题意给定一个nnn, 表示要构造出的字符串长度.所构造出的字符串sss应满足: ①∣s∣=n|s| = n∣s∣=n ②sss由小写字母组成 ③sss中任意连续子序列应在串中出现奇数次.解题思路思维一般考虑到用小写字母构造字符串的题目, 我们应考虑到用尽可能少的字母来完成题目要求.对于本题: 如果某个字符出现仅一次, 则一定满足要求. 反之(以字母a为例), aa, aaaa这样的子串, 奇数长度的段会出现偶数次, 不符合题意. 而aaa, aaaaa这样的子串, 偶原创 2021-08-22 11:19:08 · 147 阅读 · 0 评论 -
Codeforces1554C Mikasa (思维 位运算)
题目链接: Mikasa大致题意给定非负整数nnn和mmm, 设集合st={n⊕0,n⊕1,n⊕2...,n⊕m}st = \{ n \oplus 0, n \oplus 1, n \oplus 2 ..., n \oplus m \}st={n⊕0,n⊕1,n⊕2...,n⊕m}.求: MEX({st}).解题思路思维考虑到xor的性质, a⊕b=ca \oplus b = ca⊕b=c <==> a⊕c=ba \oplus c = ba⊕c=b. 我们不妨认为n=a,b=mn =原创 2021-08-22 10:38:53 · 308 阅读 · 0 评论 -
Codeforces1557C Moamen and XOR (组合数学 思维)
题目链接: Moamen and XOR大致题意给定n和k. 让你构造出一个长度为nnn的序列a[], 每个元素小于2k2^k2k.要求序列满足 a1a_1a1 & a2a_2a2 & a3a_3a3 & … & ana_nan ≥ a1a_1a1 ⊕ a2a_2a2 ⊕ a3a_3a3 ⊕ … ⊕ ana_nan问: 一共有个满足要求的序列.解题思路思维下文提到的数字请看做二进制的形式!!! 为了简便叙述, 记andandand为原原创 2021-08-10 11:06:16 · 248 阅读 · 2 评论 -
Codeforces1549D Integers Have Friends (思维 线段树)
题目链接: Integers Have Friends大致题意给出长度为n的序列a.如果存在整数m ≥ 2, a[l] % m == a[l + 1] % m == … == a[r] % m. 则称该连续子序列a[l, r]是友好的.问: 最长的连续友好子序列长度是多少.解题思路思维考虑到对于两个数x和y而言, 如果x % m == y % m, 则|x - y|一定是m的倍数.扩展: 那么对于若干个数字, 如果满足numi % m == C, 则任意两个数字之间的差值也一定是m的倍数.原创 2021-08-02 17:34:21 · 517 阅读 · 3 评论 -
Codeforces1555E Boring Segments (思维 线段树) (线段树好题!)
题目链接: Boring Segments超级推荐这个题, 感觉这个题超赞!大致题意给定n条线段, 每条线段覆盖区间为[l, r], 花费为c.现在可以从中任意选择若干条线段, 使得这些线段覆盖[1, m]区间.而我们选择这些线段的代价是: 被选择的线段中花费最大值 - 花费最小值.问: 最小的代价是多少. (题目保证一定存在解.)解题思路思维一般求极值的题目, 尺取法是很常见的一种做法.对于本题而言, 我们希望极值之差最小, 相当于我希望选择的这若干条线段花费近可能接近.由于我们可以原创 2021-08-02 01:34:02 · 275 阅读 · 0 评论 -
Codeforces914D Bash and a Tough Math Puzzle (思维 线段树)
题目链接: Bash and a Tough Math Puzzle大致题意给定一个长度为n的序列, 有两种操作:1 l r x 询问[l, r]区间, 最多修改1个位置的数字的条件下, 能否使得区间内所有数字的gcd = x.2 a c 把a位置的数字修改为c.解题思路思维我们先考虑查询操作. 设区间[l, r]gcd的结果为ddd, 如果d是x的倍数, 则我们一定可以至多修改一个位置, 使得d’ = x. 那这又代表着什么? 这代表着, [l, r]每一个位置上的数字都是x的倍数.原创 2021-07-30 13:53:49 · 201 阅读 · 0 评论 -
Codeforces1551D1 Domino (easy version) (思维)
题目链接: Domino (easy version)大致题意给出一个n行m列的表格. (保证n和m不同时为奇数)问: 能否往里面放kkk个1×2的木块和nm2−k\frac{nm}{2}-k2nm−k个2×1的木块, 使得所有木块不超边界, 不相互重叠.解题思路思维 所以为什么比赛的时候没做出来?为了简化说法, 我们把水平放置的2x1的木块称为a类型木块, 另外那种木块称为b类型.此外, 由于n和m不同时为奇数, 因此木块的总数nm2\frac{nm}{2}2nm一定是一个偶数.原创 2021-07-29 14:17:58 · 268 阅读 · 0 评论 -
Codeforces1355D Game With Array (构造)
题目链接: Game With Array大致题意给定n和s, 表示你需要构造出一个仅由正整数组成, 且长度为n序列, 使得序列中元素总和为s.问: 你能否找到这样的一个序列, 并且选定出一个k(k∈[0,s]k∈[0,s]k∈[0,s]), 使得从序列中任选若干个元素, 总和不等于k, 也不等于s-k. 若能, 则输出一种合法的序列和k.解题思路构造 我看这个题的博客题解很多人都乱写呀, 估计自己都不太明白吧 (我其实也不明白).首先我们考虑如果我们按照1, 2, 4, 8, … 这原创 2021-07-27 21:18:44 · 240 阅读 · 0 评论 -
AcWing3780 构造数组 (思维 单调栈)
题目链接: 构造数组大致题意如题面所述解题思路思维首先我们分析题目中的条件②, 这个条件表明我们最终的序列应当是不存在波谷的, 表明整个序列最多可以存在一个波峰. 若不存在波峰, 则整个序列呈单调递增(减).(也可以认为 第一个/最后一个 位置是波峰)我们可以枚举最大值(波峰)出现的位置. 不妨设最大值位置为pos, 则a[pos] = mpos. 对于[1, pos - 1]区间, 我们可以从右往左递推出ai的值, 使得[1, pos]非递减. 而对于[pos + 1, n]区间, 我们同理可原创 2021-07-25 21:30:30 · 72 阅读 · 0 评论 -
UCF Local Programming Contest Round 1A E.Sum of a Function (思维 数论)
题目链接: Sum of a Function大致题意定义: f(x) = x的最小质因子给出l r k 求[l, r]区间中, 最小的k个f(x)之和. 其中r - l ≤ 1E6, k <= 0.9 * (r - l + 1)解题思路首先我们应当抓住k的取值范围, 最大是区间长度的0.9倍. 我们应当认为这是个有用的条件, 否则给出我们限制不就没意义了吗?此时我们可以产生一个合理的猜想: 由于我们要最小的k个f(x)相加, 那有一些比较大的质数我们应当可以直接舍弃掉, 但如何去判断呢?原创 2021-07-25 16:28:16 · 103 阅读 · 0 评论 -
Codeforces1553D Backspace (思维)
题目链接: Backspace大致题意给出长度为n的字符串a, 长度为m的字符串b.对于字符串a, 我们从前向后扫描整个字符串, 当位于位置pos时, 我们有两种操作: ①输入a[pos]这个字符到文本当中 ②按下退格键(意味着我们不但不会输入当前字符, 还会删除掉上一个我们输入的字符, 若当前文本没有字符, 按下退格键不会造成任何影响).问: 我们能否从前向后扫描一次a字符串, 使得文本中的字符串等于b串.解题思路思维, 模拟我们通过模拟不难发现, 我们可能需要去除a串的某段前缀, 然后通过原创 2021-07-24 20:47:25 · 490 阅读 · 3 评论 -
Codeforces1545A AquaMoon and Strange Sort (思维)
题目链接: AquaMoon and Strange Sort大致题意给你一个长度为n的序列a, 你可以执行的操作是交换相邻的两个元素. 且如果某个元素被操作, 则必须被操作偶数次问: 你能否把整个序列排序成非降序.解题思路思维假设非降序排序后的序列为b, 我们考虑对于某个元素a[i], 不妨假设排序后他应位于b[j]处, 且 j < i. 这表明这个元素应当向左进行num = j - i次交换. 如果num为奇数, 表明这个元素一定不可能被交换偶数次. 反之, 则该元素符合条件. (j原创 2021-07-12 15:13:47 · 327 阅读 · 0 评论 -
Codeforces1547F Array Stabilization (GCD version) (思维 线段树)
题目链接: Array Stabilization (GCD version)大致题意给定一个长度为n的数组, 下标从1~n. 其中an和a1相连(成环).每轮操作得到一个新的数组b: 对于所有的i∈[1, n], b[i] = gcd(a[i], a[i + 1]) (b[n] = gcd(a[n], a[1])). 最后把新数组b复制给原数组a.问: 执行完多少轮操作后, a数组中的所有数字都相同.解题思路考虑到最终a数组, 会有很多种相等的可能情况. 这不便于我们接下来的思考.两个数取g原创 2021-07-11 21:14:28 · 393 阅读 · 1 评论 -
Codeforces1547E Air Conditioners (思维)
题目链接: Air Conditioners大致题意有n个格子排成一行, 从左到右依次编号从1到n. 初始有部分格子中有数字. 这些有数字的格子会向所有其余的格子进行传导, 规则如下:假设编号为i的格子有数字num, 则编号为j的格子会得到由i格子传导的数字num + |i - j|.你最终要输出每个格子能得到最小数字. 注: 初始有数字的格子中的数字可以变化.解题思路我不知道我有没有把题意说的足够清楚QAQ. 最开始拿到这个题懵了半天我们首先明确, 我们不可能暴力统计出所有的情况. 原因是有原创 2021-07-11 20:33:29 · 388 阅读 · 1 评论 -
Codeforces1547D Co-growing Sequence (构造 贪心 位运算)
题目链接: Co-growing Sequence大致题意定义:一个长度为n的序列a, 如果满足 a[i] & a[i + 1] == a[i], i ∈ [1, n), 则称该序列为增长的两个长度均为n的序列a, b. 现构造出长度为n的序列c, 使得 c[i] = a[i] ⊕ b[i], i ∈ [1, n], 若c序列是增长的, 则称序列a和b是同增的现给出序列a, 让你构造出一个字典序最小的序列b, 使得a和b是同增的.解题思路我们首先对增长的序列进行分析:如果原创 2021-07-11 20:11:45 · 424 阅读 · 1 评论 -
Codeforces1336A Linova and Kingdom (思维)
题目链接: Linova and Kingdom大致题意有n座城市, n-1条连通城市间的双向道路. 城市1是首都, 所有的城市可以看做是以1号点为根的树形结构.我们需要从中选择m座城市, 让其发展工业, 其余的城市则发展旅游业.从工业城市i前往城市1的最短路径所经过的旅游业城市数目, 定义为i城市的贡献度.你可以自定义m座发展工业的城市, 问: m座城市的最大贡献度之和是多少.解题思路首先不难贪心联想到: 我们选择叶子结点成为工业城市好像要更优一些.假设1~n所有城市形成一条链, 此时如果原创 2021-07-09 13:23:13 · 222 阅读 · 0 评论 -
Codeforces1364B Most socially-distanced subsequence (思维)
题目链接: Most socially-distanced subsequence大致题意给出一个长度为n的序列p, 你需要找到p的一个子序列s, s的长度至少为2, 且|s1 - s2| + |s2 - s3| + … + |sk-1 - sk|尽可能大, 如果多个子序列的值相同, 输出任一长度最短的子序列.解题思路考虑到对于上式|s1 - s2| + |s2 - s3| + … + |sk-1 - sk|进行化简:①假设当前序列单调递增, 则可化简为: (s2 - s1) + (s3 - s2原创 2021-07-05 13:02:28 · 152 阅读 · 0 评论 -
Codeforces1375C Element Extermination (思维)
题目链接: Element Extermination大致题意给定一个 1~n 的排列, 若对于i ∈ [1, n) 且 a[i] < a[i + 1], 则我们可以删除元素a[i] 或 a[i + 1].问: 我们能否把这个序列长度变为1.解题思路如果满足 a[1] < a[n], 则可以将序列长度删至1, 反之不能.证明: 假设 a[1] < a[n], 对于 i ∈ (1, n) 区间的元素, 由于a[i]各不相同, 我们一定可以使得这个区间删剩一个元素a[pos], 对原创 2021-07-04 21:14:27 · 76 阅读 · 0 评论 -
Codeforces1542B Plus and Multiply (思维)
题目链接: Plus and Multiply大致题意有一个无穷集合, 初始集合内有整数1, 现给定你整数a和b. 集合内部元素有如下定义: 若x存在于集合中, 则x * a存在于集合中, x + b也存在于集合当中.请你判断整数n是否存在于集合中.解题思路为简化说明, 我们定义: 操作①: x * a 操作②: x + b我们不妨先假设n存在于集合中, 则n一定可以由1经过若干次操作①和②的排列组合得到. 我们不妨看看操作①和②有什么关系.假设现有数字x, 我们如果执行②①, 则 x’ =原创 2021-07-04 13:25:58 · 719 阅读 · 5 评论 -
Codeforces1541C Great Graphs (构造)
题目链接: Great Graphs大致题意给你一个长度为n的数组a, ai表示从1号点出发, 到达i号点的最短路长度.让你构造出一个图, 其中所有的边都是单向边, 你可以自定义每条边是否存在, 若存在其边权的大小. 最终要求这个图满足a数组, 且最小化总的边权和.解题思路注: 关于下述分析我们不考虑边权为0的边, 因为这样的边存在只是保证了图的连通性, 并不会对答案产生贡献题一读完, 我们脑海里应该飞快产生两个信息: ①答案最大是0 ②图中一定不含有负环.为什么说答案最大值就是0呢? 我们很原创 2021-06-26 17:04:58 · 903 阅读 · 2 评论 -
Codeforces1541B Pleasant Pairs (思维)
题目链接:Pleasant Pairs大致题意给出一个长度为n的序列a, 里面的数字各不相同且值域为[1, 2n].问你有多少满足: i < j 并且 a[i] * a [j] = i + j 的数对.解题思路随便口胡一下在比赛的时候, 我看到这个题我就在想, 怎么去给他进行变形, 使得 a[i] 和 i 有关联起来. (因为脑子中依稀记得有个 a[i] - a[j] = j - i 的题, 我们变换成 a[i] + i = a[j] + j, 就能快速求出了.)对于这个题, 我发原创 2021-06-26 15:19:56 · 450 阅读 · 1 评论 -
Codeforces1348B Phoenix and Beauty (思维 构造)
题目链接: Phoenix and Beauty大致题意给你一个长度为n的序列, 你可以向序列中任意位置添加任何元素, 问你能否使得每一个长度为m的子序列之和都相等.解题思路发现我们最终要构造出一个长度为m的循环节.如果原数组中不同元素的种类大于m, 一定是无解的.反之, 我们可以任意构造长度为m的循环节, 保证这个循环节包含所有原序列中的所有种元素即可, 这样我们输出n次这个循环节, 我们一定可以保证每个长度为m的子序列之和都相等. 且我们也发现我们一定可以从原序列添加若干元素变化得到.AC原创 2021-06-21 11:36:29 · 117 阅读 · 0 评论 -
T-primes (规律 思维 筛素数)
题目链接: T-primes大致题意给你一个数字x, 判断其约数个数是否为3.解题思路假设x != 1, 那么1和数字x本身一定都是其约数, 此时我们还差一个约数. 且这个约数一定得是一个质数.考虑到约数本身的性质, 如果a是x的一个约数, 则 b=x/a 也一定是x的一个约数. 因为我们此时只差一个约数, 因此应有a = b. 到这里, 这个题就很明确了, 这个数字x是一个质数的平方. 只有这样, 我们才能保证他只有3个约数.AC代码#include <bits/stdc++.h>原创 2021-06-08 13:37:30 · 353 阅读 · 0 评论 -
CF1515D Phoenix and Socks (贪心 思维)
题目链接: Phoenix and Towers大致题意给你n只袜子, 有l只左袜子, r只右袜子. 每只袜子有颜色c.你可以执行两种操作: ① 左袜子变成右袜子, 右袜子变成左袜子 ② 把这个袜子改成任意一种颜色问: 最少执行多少次操作, 使得n只袜子可以相互配对(一左一右, 且颜色相同)解题思路贪心 + 思维首先我们明确一点, 如果此时我们都是一种类型的袜子(不妨认为是左袜子), 此时他们的颜色还都不一样, 那么我们必然需要操作2次, 才能使得袜子成功配对一对.除此之外, 如果不原创 2021-06-03 19:53:34 · 398 阅读 · 0 评论 -
CF1515C Phoenix and Towers (贪心)
题目链接: Phoenix and Towers大致题意给你n个数, 要求你把这些数字分成m组, 使得任意两组之间的差值不超过x.解题思路贪心 这有点像之前cf的一个B题, 大概是说放积木, 问最少能放几层.我们遍历n个数字, 每次把当前这个数字放到总和最小的组里即可.因为我们最后要求任意两组之前的差值尽可能的小, 相当于让m组数尽可能的平均. 我们贪心去做即可.到这里你发现, 可能我这样的做法并不会使得这m组数尽可能的平均, 因为我们也没有排序.给出一个例子: 对于3个数, 分成2组的情原创 2021-06-03 19:33:50 · 221 阅读 · 0 评论