![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
构造
文章平均质量分 81
利用聪明智慧构造满足题意的结构的构造算法
盖乌咪·A·埃迪尔
这个作者很懒,什么都没留下…
展开
-
Codeforces-1693 A: Directional Increase 【构造、贪心】
题目传送门:Codeforces-1693 A: Directional Increase 有一个长度为 nnn 的数组,每个元素一开始是 000,有一个指针一开始坐落在元素的第一个位置。 现在可以做两个操作: (1)指针不在最后一个元素的情况下,可以在当前位置的值 +1+1+1,之后指针前往下一个元素。 (2)指针不在第一个元素的情况下,可以在当前位置的值 −1-1−1,之后前往上一个元素。 除此之外,还有一个限制,就是做完所有操作后,指针必须终止在第一个元素处。 现在给出一个数组原创 2022-07-08 10:41:33 · 325 阅读 · 1 评论 -
Codeforces-1682 C: LIS or Reverse LIS? 【构造】
题目传送门:Codeforces-1682 C: LIS or Reverse LIS? 给定一个数组 aaa,可以调整其任意顺序。令 LIS(⋅)LIS(\sdot)LIS(⋅) 为最长上升(严格)子序列,a′a'a′ 为反转 aaa 后得到的数组,求 min(LIS(a),LIS(a′))\min (LIS(a), LIS(a'))min(LIS(a),LIS(a′))。 如果学过 LIS,里面有一种做法,从一个空数组(结果数组)开始,用二分替换的方式求一个给定数组的 LIS,其核心思想是插入数值原创 2022-07-02 11:24:34 · 347 阅读 · 0 评论 -
Codeforces-1688 C: Manipulating History 【构造】
题目传送门:Codeforces-1688 C 字符串 sss 的初始长度为 111,每一次可以将里面的子串 t2i−1t_{2i-1}t2i−1 替换为 t2it_{2i}t2i,如果出现多次 t2i−1t_{2i-1}t2i−1,那么只有一个被替换为 t2it_{2i}t2i。现在给出最终结果,和被打乱的 ttt 序列,问初始字符串是多少。 这道题最大的问题是读题。初始长度为 111,代表初始字符串其实就是一个字符;每一次替换字符串中的子串,说明 t2i−1t_{2i-1}t2i−1 一定原创 2022-07-01 16:39:28 · 130 阅读 · 0 评论 -
Codeforces-1696 D: Permutation Graph【构造、分治、数据结构】
题目传送门:Codeforces-1696 D: Permutation Graph 给定一个 1⋯n1 \cdots n1⋯n 的排列,对于一个连续的区间 ai⋯aja_i \cdots a_jai⋯aj,若 aia_iai 是这段区间的最小/最大值,同时,aja_jaj 也是这段区间的最小/最大值,那么我们可以在 i,ji, ji,j 结点上连一条无向边。问这样构造出的图,从 111 到 nnn 的最短路径。 首先暴力是肯定不行的,因为若是一个单调的数组,能连的边是 n2n^2n2 级别的原创 2022-06-30 16:09:44 · 313 阅读 · 1 评论 -
Codeforces-1696 C: Fishingprince Plays With Array【构造、贪心】
题目传送门:Codeforces-1696 C 给定一个长度为 nnn 的数组 {ai}\{a_i\}{ai},和一个大于 111 的整数 mmm, 可以做两个操作:将数组中 mmm 倍数的数 aia_iai,换成 mmm 个 aim\frac{a_i}{m}mai;或者将数组中连续 mmm 个相等的 aia_iai 合并为一个 m×aim \times a_im×ai。 现在给出数组 {bi}\{b_i\}{bi},问 {ai}\{a_i\}{ai} 能否经过变换变为 bib_ibi原创 2022-06-29 20:38:41 · 290 阅读 · 0 评论 -
Codeforces-1697 C: awoo‘s Favorite Problem 【构造、双指针】
题目传送门:Codeforces-1697 C 给定两个长度为 nnn 的字符串 sss 和 ttt。每个字符串中包含三种字符:a、b、c。 现在可以做两种操作:将 sss 字符串中的 “ab” 换成 “ba”;将 sss 字符串中的 “bc” 换成 “cb”。问能否经过任意数量的这两种操作,将 sss 转换为 ttt。 首先,两个字符串里的各种字符对应的数量应该是一样的。 之后我们考虑给出的两个移动方式,这个题是将交换移动变成了单向交换,若是 a 与 b 可以互换,b 与 c 可以交换,那么我原创 2022-06-26 21:40:43 · 485 阅读 · 0 评论 -
Codeforces-1700 C: Helping the Nature 【构造、一阶差分】
题目传送门:Codeforces-1700 C 给定长度为 nnn 的数组 {ai}\{a_i\}{ai},可以做三种选择:选择 iii,将 a1⋯ia_{1\cdots i}a1⋯i 减去 111;选择 iii,将 ai⋯na_{i\cdots n}ai⋯n 减去 111;将数组中所有的值加 111。问最少经过多少次操作可以得到全 000 数组。 很容易想到,首要任务是把整个数组的元素调整为一样的值,之后可以通过整个数组的加减将其调整为 000。调整为同样的值需要的最小次数显然是数组中相邻元素插值原创 2022-06-23 22:26:45 · 426 阅读 · 0 评论 -
Codeforces-1686 C: Circular Local MiniMax 【构造、排序】
Codeforces-1686 C: Circular Local MiniMax题目传送门:Codeforces-1686 C题目题目截图样例描述题目大意 给定一个长度为 nnn 的数组 {ai}i=1n\{a_i\}_{i=1}^n{ai}i=1n。任务是判断这个数组能否被排成一个圈,其中每个元素要么比邻居都小,要么比邻居都大。题目解析 一个位置不可能既是波峰又是波谷,即不可能又是极小值又是极大值。因此,如果数组的长度是奇数,显然是不能排成那样的圈的。(如三个位置 极小值-极原创 2022-05-28 00:27:40 · 269 阅读 · 0 评论 -
Codeforces-1672F1: Array Shuffling
Codeforces-1672F1: Array Shuffling题目链接:Codeforces-1672F1题目题目截图样例描述题目大意 给定一个长度为 nnn 数组 aaa。现在可以对数组做一个操作,找到两个下标,并交换对应的两个元素。定义一个数组 bbb 的伤心值是将 bbb 转换为 aaa 需要的最小操作数量。目标是找到数组 bbb,使得其伤心值最大。题目解析 我们可以将某个交换序列看作图论中的一个个的环,图的顶点代表位置,边代表赋值。例如 i1→i2,i2→i3,⋯ ,i原创 2022-04-27 04:39:05 · 453 阅读 · 0 评论 -
Codeforces-1672 D: Cyclic Rotation
Codeforces-1672 D: Cyclic Rotation题目链接:Codeforces-1672 D题目题目截图样例描述题目大意 给定一个数组长度 nnn,并给定数组 aaa。 可以对 aaa 数组实行一个操作,选择两个下标 l,r for 1≤l≤r≤n and al=arl, r \; \text{for}\; 1 \le l \le r \le n \; and \; a_l=a_rl,rfor1≤l≤r≤nandal=ar,将 ala_lal 放到原创 2022-04-25 00:59:48 · 840 阅读 · 0 评论 -
Codeforces 1671-D: Insert a Progression
Codeforces 1671-D: Insert a Progression题目链接:Codeforces 1671-D: Insert a Progression题目题目截图样例描述题目大意 给定 xxx 和一个长度为 nnn 的数组 aia_iai,将 [1,x][1, x][1,x] 的整数都插入到数组中,可以插入一个数到数组中的任意位置(包括所有数前和所有数后)。设插入数之后的新数组为 a′a'a′,求 ∑i=1n+x−1∣ai′−ai+1′∣\sum_{i=1}^{n+x-1原创 2022-04-24 05:27:51 · 576 阅读 · 0 评论 -
Codeforces-1605 D: Treelabeling
Codeforces-1605 D: Treelabeling题目题目传送门:Treelabeling题目截图样例描述题目大意 给定一个 nnn 个结点的树,小E和小S轮流移动棋子,小E第一个下,可以下在任意的结点上。每次移动棋子,从当前结点 uuu 移动到下一结点 vvv 需要满足三个条件:u↔vu \leftrightarrow vu↔v是树上的一条边vvv 没有被访问过u⊕v≤min(u,v)u \oplus v \le \min(u,v)u⊕v≤min(u,v),⊕\op原创 2021-11-16 10:33:42 · 838 阅读 · 0 评论