green_gold_dog permutation 1867a green
CF612E Square Root of Permutation
挺有意思的一个构造题,不过这种排列置换相关的套路感觉都太明显了 首先考虑把原图的每个置换环求出来,稍作观察会发现所有长度为奇数的置换环都可以很容易地构造出对应的\(q\)数组 但长度为偶数的置换环就不能单独构造了,但我们发现可以把两个长度相同且为偶数的置换环交错着合并来得到一个合法的\(q\)数组 ......
CF1542E2 Abnormal Permutation Pairs (hard version) 题解
Abnormal Permutation Pairs (hard version) 两个限制:字典序小、逆序对大,一个显然的想法就是确保一对关系,统计另一对关系。 确保哪一对呢?我们想了想,决定确保字典序小,因为字典序是可以贪心的。 具体而言,我们考虑两个排列自第 \(i\) 位开始出现了不同。这样 ......
Codeforces Round 884 (Div. 1 + Div. 2) B. Permutations & Primes
给一个正整数 \(n\) ,你需要构造一个 \(n\) 的排列 \(p_1, p_2, \cdots, p_n\) 。对于排列 \(p\) 的每个子段 \([l, r]\) ,\(mex_{i = l}^{r} a_i\) 的结果为质数的次数尽可能多。 此处的 \(mex\) 最小排除值最低为 \( ......
【前缀和优化 dp】CF1542E1 Abnormal Permutation Pairs (easy version) 题解
CF1542E1 首先时间复杂度肯定是 \(\mathcal{O}(n^3)\) 的。 容易想到先枚举最长公共前缀,然后枚举 \(p_{len+1}\) 和 \(q_{len+1}\),再枚举逆序对数进行统计。 令 \(f_{i,j}\) 表示有 \(j\) 个逆序对的 \(i\) 阶排列的个数。 ......
【前缀和优化 dp】CF1542E2 Abnormal Permutation Pairs (hard version) 题解
CF1542E2 首先时间复杂度肯定是 \(\mathcal{O}(n^3)\) 的。 容易想到先枚举最长公共前缀,然后枚举 \(p_{len+1}\) 和 \(q_{len+1}\),再枚举逆序对数进行统计。 令 \(f_{i,j}\) 表示有 \(j\) 个逆序对的 \(i\) 阶排列的个数。 ......
Codeforces Round 893 (Div. 2) C. Yet Another Permutation Problem
有一个 \(gcd\) 游戏,按以下步骤进行: 选择一个 \(n\) 的排列 \(p_1, p_2, \cdots, p_n\) 。 对于每个 \(i\) ,\(d_i = gcd(p_i, p_{i \% n + 1})\) 排列 \(p\) 的 \(score\) 为数组 \([d_1, d_2 ......
[ARC167D] Good Permutation 题解
题意 对于一个长度为 \(N\) 的排列 \(Q\),定义其为好的,当且仅当 对于任意整数 \(i \in \left[1, N\right]\),在进行若干次操作 \(i \leftarrow Q_i\) 后可以得到 \(i = 1\)。 给定一个排列 \(P\),定义一次操作为交换两个数。定义 ......
ARC167D Good Permutation 题解
题意 给定一个长度为 \(N\) 的排列 \((P_1,P_2,\cdots,P_N)\)。称一个排列 \(P\) 为“好排列”当且仅当对于所有 \(1\leq x\leq N\),都能通过不停地使 \(x\leftarrow P_x\) 将 \(x\) 变成 \(1\)。 通过最小次数操作将 \( ......
[AGC030F] Permutation and Minimum 题解
Permutation and Minimum 看到 300 的数据范围,再加上计数题,很容易就往计数 DP 方向去想。 为方便,我们将 \(n\) 乘二。 因为是两个位置取 \(\min\),于是我们便想到从小往大把每个数填入序列。于是DP数组第一维的意义便出来了:当前已经填入了前 \(i\) 小 ......
CF882E1+CF1882E2 Two Permutations 题解-构造题
CF882E1+CF1882E2 Two Permutations 题解-构造题 哇,人类智慧,太智慧了。。。 此题作为20231010联考的 T3。 感觉赛时根本没有去往这方面想。 CF1882E1 CF1882E2 E1 是简单版,就是没有要求操作数最小化。 E1-Easy Version 方法 ......
CodeForces 1882E1 Two Permutations (Easy Version)
洛谷传送门 CF 传送门 考虑若是对一个排列进行操作,怎么做。 我们维护一个排列上的值域连续段 \([l, r]\),满足 \(a_{l + 1} = a_l + 1, a_{l + 2} = a_{l + 1} + 1\),以此类推。初始 \(l = r = 1\)。 那么我们每次可以选择往外扩充 ......
CodeForces 1882E2 Two Permutations (Hard Version)
洛谷传送门 CF 传送门 如何评价,模拟赛搬了一道,前一天晚上代码写了一半的题。 考虑如何让操作次数最小。发现直接做太困难了。根本原因是,一次操作对序列的影响太大了。考虑做一些转化,减少一次操作对序列的影响。 仍然先考虑一个排列怎么做。 不知道为什么可以想到在排列前面添加特殊字符 \(0\) 变成 ......
Educational Codeforces Round 109 (Rated for Div. 2) B. Permutation Sort
给一个长为 \(n\) 的排列 \(a\),你可以执行以下操作:选择一个子数组并且按任意顺序重排,但这个子数组不能是数组本身。 询问最少经过多少次操作可以使得排列 \(a\) 变为升序。 定义操作次数为 \(ans\) 。 若数组已经有序,\(ans = 0\) 。 若 \(a_1 = 1\) 或者 ......
pytorch permute
pytorch permute permute(dims)将tensor的维度换位。参数:参数是一系列的整数,代表原来张量的维度。比如三维就有0,1,2这些dimension。例: import torch import numpy as np a=np.array([[[1,2,3],[4,5,6 ......
Codeforces Round 901 (Div. 2) C. Jellyfish and Green Apple (位运算)
Codeforces Round 901 (Div. 2) C. Jellyfish and Green Apple //思路:浮点数转二进制,a/b的结果为 gcd(a,b)*最简分式(n/m)的结果 //苹果能分的前提是人数得是一个2的次幂数,通过切割只能分为形同0.001的二进制小数 //a/ ......
D. Prefix Permutation Sums
D. Prefix Permutation Sums 吐槽:读题不仔细,还以为原数组的取值是任意的,最后看题解的时候才发现取值在[1,n],当时因为看不懂直接跳过了 题意:给你一个缺了一个的前缀和数组,让你判断是否存在原数组,取值[1,n],每个数只存在一次 可以分类讨论 1 缺少最后一个前缀和 2 ......
P3477 [POI2008] PER-Permutation 解题报告
我咕咕咕了这道题半年之久? 好像洛谷好多题解都被 hack 了啊。 (本题解现有 hack 均通过) 题目链接 折叠题干 [POI2008] PER-Permutation 题目描述 Multiset is a mathematical object similar to a set, but ea ......
CF1875C Jellyfish and Green Apple
思路 首先我们可以考虑把能分的都先分了,再选择去切剩下的苹果。 那么我们只需要考虑苹果数量少于人数的情况,每个人能分的苹果都必然少于目前的单个苹果,所以每个苹果都必须切一刀,那么答案数就会增加当前的数量,再把能分的都分了,重复这一过程,直到分完为止。这样去切一定是最优的。 那么,什么时候无解呢? 因 ......
CodeForces 715E Complete the Permutations
洛谷传送门 CF 传送门 最小交换次数等于 \(n - \text{环数}\)。所以题目要我们统计把 \(p, q\) 补全成排列,连边 \(p_i \to q_i\),环数 \(= i\) 的方案数。 考虑把边根据 \(p_i, q_i\) 的是否已知状态分成四类: \(p \to q\) \(p ......
AtCoder Grand Contest 046 E Permutation Cover
洛谷传送门 AtCoder 传送门 若 \(2\min\limits_{i = 1}^m a_i < \max\limits_{i = 1}^n a_i\) 就无解,因为根据排列的性质必然存在 \(yxxxy\) 或两端 \(xxyy\) 的情况,并且若这个条件不满足,就可以构造一组解。 考虑最小化 ......
CF1677D Tokitsukaze and Permutations
好玩题。 对于一个排列 \(p\),进行 \(k\) 轮冒泡,记 \(v_i = \sum_{j < i} [p_j < p_i]\),给定 \(v_i\),部分值不确定,求合法的 \(p\) 的个数。 \(p\) 由 \(v\) 唯一确定。 考虑一个个加数字进去,每次可以判断加入数字与前面数字的相 ......
.NET 8 的 green thread 异步模型被搁置了
.NET 平台上的green thread 异步模型实验结果最近出来了,具体参见:https://github.com/dotnet/runtimelab/issues/2398 ,实验结果总结一下就是在.NET和 ASP.NET Core中实现Green Thread是可行的。Green Thre ......
CF1542E1 Abnormal Permutation Pairs (easy version) 题解
CF1542E1 Abnormal Permutation Pairs (easy version) 题解 不会 Hard version 对于第一个限制字典序,我们可以考虑枚举前 \(i\) 位相同,然后考虑后 \(n-i\) 位。我们只需要保证 \(p_{i+1} < q_{i+1}\) 即可。 ......
Educational Codeforces Round 117 (Rated for Div. 2) B. Special Permutation
给三个正整数数 \(n, a, b\) ,\(n\) 是偶数。写出 \(n\) 的任意一个排列满足左边一半的最小值等于 \(b\) 且右边一半的最大值等于 \(a\) 。 性质: 控制某个区间的最小值,需要让这个区间的数尽可能大 控制某个区间的最大值,需要让这个区间的数尽可能小 于是让排列左半的数尽 ......
CF1158C Permutation recovery
好久没有单独开题目写了,主要是最近都是以补比赛为主,很少直接找题目做 但现在感觉只靠打比赛一来很难直接提升水平了,二来需要找一些知识点精进一下 所以就找了个codeforces 2100左右的graphs题,没事就刷一刷上面的题目 这题的话就比较典,首先考虑怎么判无解,如果对于\(x<y\),满足\ ......
CF1867A green_gold_dog, array and permutation
思路 很简单的一道题,洛谷大概都不会开放题解通道?(实际上貌似每场比赛的 A 都没开放?) 显然,对于原数组较小的数,我们尽量让大的数,取全排列的较小的数,这样可以保证差是逐渐变小的,也就让 \(c\) 数组差异变大。 所以直接拿个 struct 存,然后两边排序就好。 AC code #inclu ......
Codeforces Round 798 (Div. 2) B. Mystic Permutation
给一个长为 \(n\) 的排列 \(p\) ,需要构造一个长为 \(n\) 的排列 \(q\) ,满足 \(\forall i, p_i \neq q_i\) ,且 \(q\) 在所有合法排列中字典序最小。 观察一:\(n = 1\) 时无解,否则有解。 观察二:\(n > 1\) 时,\(1 \s ......
next permutation 类题目 31,556
31. Next Permutation Medium 168634309Add to ListShare A permutation of an array of integers is an arrangement of its members into a sequence or linear ......
CF1872D Plus Minus Permutation
## 思路 又又又是一道 CF 诈骗题。 对于 $x$ 选出来的数,我们尽量放大的,对于 $y$ 选出来的数,我们尽量放小的,但是呢,存在同时被 $x$ 和 $y$ 选出来的数,就随便放。 但是可以发现按照题目给的数据范围,这么找选择的数,然后放最大或者是放最小,肯定是超时。 所以我们可以直接算出有 ......
Codeforces Round 873 (Div. 2) B. Permutation Swap
给一个无序排列 $p_1, p_2, \cdots, p_n$ 。为了排序这个排列,选一个常数 $k(k \geq 1)$ 并且在排列上做一些操作。 * 一次操作可以选择 $i, j, (1 \leq j view ``` #include typedef long long ll; ll gcd( ......