• 2024-09-25[ARC122E] Increasing LCMs 题解
    感觉像比较套路的构造题。思路假如我们正着进行构造,可以发现我们加入一个数以后,对后面的数产生的影响是很大的。但是如果我们从最后一个数开始构造,那么可以发现它是不会对之后的构造产生任何影响的。应为越前面的数的限制会越少,那么可以填的数一定是不减的。一个数可以填在后
  • 2024-09-09CF1621G Weighted Increasing Subsequences 题解
    题目链接点击打开链接题目解法这种题就感觉每一步都不难想,但串在一起就不会显然考虑位置\(x\)作为\(lis\)的一部分,合法的\(lis\)的个数合法的约束是:令\(lis\)的最后一个位置为\(last\),满足\(\max\{a_{last+1},...,a_n\}>a_x\)不难发现,合法的\(last\)是一段区间
  • 2024-08-06CF568E Longest Increasing Subsequence 题解
    Description给定一个长度为\(n\)的有\(k\)个空缺的序列。你有\(m\)个数可以用于填补空缺。要求最大化最长上升子序列的长度。\(n,m\le10^5\),\(k\le10^3\)。Solution容易发现只需要先构造出LIS上的位置的值,对于其余未填位置随便填,所以构造LIS时就不需要考虑出
  • 2024-07-16CF1988C Increasing Sequence with Fixed OR Solution
    题意简述如下:给定一个正整数\(n\),请构造一个正整数序列使其满足以下条件并尽可能长:这个序列中每个数都大于等于\(1\)且小于等于\(n\);这个序列是单调递增的;这个序列中任意两个相邻的数按位或的结果都为\(n\)。通过手玩或者写个最长上升子序列可以发现,我们记这个数在二进制
  • 2024-07-15LeetCode 2263. Make Array Non-decreasing or Non-increasing
    原题链接在这里:https://leetcode.com/problems/make-array-non-decreasing-or-non-increasing/description/题目:Youaregivena 0-indexed integerarray nums.Inoneoperation,youcan:Chooseanindex i intherange 0<=i<nums.lengthSet nums[i] to num
  • 2024-03-22CF1922E Increasing Subsequences
    一个显然的思路就是构造很多互不相关的上升序列。但是这样构造出来的\(n\)是\(O(\log_2^2n)\)量级的,所以需要考虑新做法。假设我们本来有一个上升序列,我们能否往里面插数?如果插入的数前面本来有\(x\)个数,那么它有\(2^x\)的贡献。于是容易想到先写一个最大的上升序列,再二
  • 2024-03-13E. Increasing Subsequences__2
    原题链接题解已知对于一个长度为\(n\)的连续+1型上升序列而言,其满足要求的子序列有\(2^n\)个若我们在该序列下标为\(k\)的右边插入一个绝对大于左边,绝对小于右边的数,满足要求的子序列会增加\(2^k\)个由此想到极限构造加二进制,其中最高位的一不用管,其余的每一位生成上升
  • 2024-02-18[ARC122E] Increasing LCMs 题解
    Description给定长度为\(N\)的正整数序列\(\{A_i\}\),满足\(A_i\)单调升。问是否能将\(\{A_i\}\)重排为序列\(\{x_i\}\),满足:令\(y_i=\operatorname{LCM}(x_1,\dots,x_i)\),\(\forall1\lei<N,y_i<y_{i+1}\)(即\(y_i\)单调升)。$1\\leq\N\\leq\
  • 2024-02-07CF1922E Increasing Subsequences 题解
    解题思路因为可以有空集,那么我们首先构造第一段最长的连续上升的序列,那么这段序列中共有\(2^{\mids\mid}\)个上升子序列。接下来我们考虑补全剩余的,我们不妨将剩余的部分全部设为连续不增序列,那么设当前位置在第一段中有\(k\)个小于它的,那么添加这个数后可以增加\(2^{k-1}
  • 2023-12-23CF1621G Weighted Increasing Subsequences
    CF1621GWeightedIncreasingSubsequences你有一个长度为\(n\)的序列,定义\(a\)的一个长度为\(k\)的子序列为\(a_{i_1},a_{i_2},\dots,a_{i_k}\)。由此,我们不难发现,\(a\)的一个长度为\(k\)的子序列为上升子序列,当且仅当\(\forallj\in[1,k)\),\(a_{i_j}<a_{i_{j+1}}\)
  • 2023-12-21[Codeforces] CF1817A Almost Increasing Subsequence
    CF1817AAlmostIncreasingSubsequence题意给定长度为\(n\)一个序列\(a\)以及\(q\)次询问,每次询问给出\(l\)和\(r\),找出序列\(a\)在\([l,r]\)内最长的几乎递增子序列。对于几乎递增的定义:如果一个序列中不存在连续的三个数\(x\),\(y\),\(z\),使得\(x\gey\ge\
  • 2023-11-03[ARC122E] Increasing LCMs
    ProblemStatementWehaveasequenceof$N$positiveintegers:$A_1,A_2,\cdots,A_N$.Youaretorearrangetheseintegersintoanothersequence$x_1,x_2,\cdots,x_N$,where$x$mustsatisfythefollowingcondition:Letusdefine$y_i=\operatorname{LCM}(x
  • 2023-10-19CF568E Longest Increasing Subsequence 题解
    LongestIncreasingSubsequenceLIS问题有两种主流\(O(n\logn)\)解法,最常见的树状数组法,以及不那么常见的二分法。然后考虑本题,发现一个神奇的思路就是求出LIS后倒序复原出数组。进一步思考后发现,因为本题是LIS(LongestIncreasingSubsequence)而非LNDS(LongestNon-Decr
  • 2023-10-10[ARC130E] Increasing Minimumm
    [ARC130E]IncreasingMinimumm?考虑模拟一下题目中的过程,发现相当于将原序列按照初始值划分为若干个等价类,然后每次都会先合并等价类然后重排等价类中的所有数并加入\(I\)中。这样将\(I\)划分成了若干段。考虑假设我们一共划分出\(T\)个段,那么最终每个数的答案就是\(T\)
  • 2023-09-16E. Increasing Frequency 最大子段和
     题意:给你一个长度为n的数组,再给你一个c,问一次操作后,你最多能让数组中存在多少个c?操作:选择一个区间,对这个区间加上任意整数。做法:那么我们转化一下这个一题,就是要选择一个区间,使得该区间里有一个数,他的数量减去c的数量最大。这个其实就是一个最大子段和,我们数据范围内出现过
  • 2023-09-15[ARC122E] Increasing LCMs
    [ARC122E]IncreasingLCMsAtcoder:[ARC122E]IncreasingLCMs洛谷:[ARC122E]IncreasingLCMsSolution应该意识到这题的核心思想在于构造,想办法将原问题不断划分为子问题。此题策略的证明不算太难,但以我目前的水平肯定不可能靠严密的证明做出这道题。猜,直接把满足条件的数放
  • 2023-08-29CF1864A Increasing and Decreasing
    思路首先,给定了一个序列的首项\(a_1\)和末项\(a_n\)以及项数\(n\),要求构造一个严格递增,且差严格递减的序列。因为是构造题,所以可以随便造,考虑差严格递减,所以从后往前构造比较合理。因为严格递增,所以差至少为\(1\),所以\(a_{n-1}\)就构造成\(a_n-1\),\(a_{n-2}\)就构造
  • 2023-08-28[LeetCode][300]longest-increasing-subsequence
    ContentGivenanintegerarraynums,returnthelengthofthelongeststrictlyincreasingsubsequence. Example1:Input:nums=[10,9,2,5,3,7,101,18]Output:4Explanation:Thelongestincreasingsubsequenceis[2,3,7,101],thereforethelengthis4.E
  • 2023-07-20ARC145F Modulo Sum of Increasing Sequences
    为数不多不用多项式科技的单位根反演题。\(A\)不降比较难搞,所以首先令\(B_i=A_i+i-1\),则\(B\)单调递增。转化为对任意的\(k\in[0,\text{MOD}-1]\),求在\([0,N+M-1]\)中选\(N\)个不同的数,总和对\(\text{MOD}\)取模为\(k\)的方案数。记\(p=\text{MOD},n=N+M\)。列出
  • 2023-05-31「题解」ABC292G Count Strictly Increasing Sequences
    没一眼看出来还是拉了。考虑区间dp,\(f_{i,l,r}\)表示\([l,r]\)前\((i-1)\)位都相同,看后面\([i,n]\)位填数使得递增的方案数是多少。这样已经可以做了,但是还不够,要追求一下最简单的写法。想想,发现每次dp是要分为多个儿子乘起来,内部还要搞个dp。但可以改成每次两个儿子
  • 2023-05-26897. Increasing Order Search Tree
    问题描述yield就是return返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。如果是迭代器则应该使用yieldfromclassTreeNode(object):def__init__(self,x):self.val=xself.left=Noneself.right=None#树生成代
  • 2023-05-23数组递增的判断【python实现】
    有时候需要对某一组数组的数据进行判断是否递增的场景,比如我在开发一些体育动作场景下,某些肢体动作是需要持续朝着垂直方向向上变化,那么z轴的值是会累增的。同理,逆向考虑,递减就是它的对立面。下面是查找总结到的所有方式,如有补充可以评论区提出。资料参考来源:Checkiflist
  • 2023-04-25ABC267G Increasing K Times 题解
    做这道题,很有感悟,发篇文。先给数列从小到大排个序。接下来设\(f_{i,j}\)表示前\(i\)个数的排列形成\(j\)个上坡的方案数。接下来考虑转移,分为插入第\(i\)个数后增加上坡和不增加上坡两种情况。对于不增加的情况,有三种可能:第\(i\)个数插入在了数列的最前端,有\(1\)
  • 2023-03-30「解题报告」ARC122E Increasing LCMs
    紫题不会了,感觉要退役了前缀\(\mathrm{lcm}\)的限制很强,考虑每次消去一个数。发现最后一个数没有依赖,考虑最后一个数的条件,其实就是最后一个数不是前\(n-1\)个数的\(\mathrm{lcm}\)的倍数,即\(\displaystyle\gcd(\mathop{\mathrm{lcm}}_{i\nej}(a_j),a_i)<a_i\)。这
  • 2023-03-17「解题报告」ARC130E Increasing Minimum
    想法大概差不多,但是确实不知道咋维护(考虑每次删最小值的过程,我们相当于先删掉所有最小值\(=1\)的位置,然后删所有最小值\(=2\)的位置,依次类推。那么我们可以将删除的