首页 > 其他分享 >Manhattan Permutations

Manhattan Permutations

时间:2024-08-04 16:08:12浏览次数:9  
标签:... 曼哈顿 Permutations 奇偶性 贡献 Manhattan

首先观察样例,不难发现有可能\(k\)为奇的时候无解

证明:《离散数学》中有一道题目的trick是\(|i-j|\)与\(i+j\)的奇偶性相同,所以曼哈顿排列的奇偶性与\(p_1+1+p_2+2+...+p_n+n=2(1+2+3+...+n)\),后者显然为偶数,所以\(k\)为奇时无解

其次一个很自然的想法就是当\(p\)为\([n,n-1,n-2,...,3,2,1]\)时,曼哈顿排列最大,所以当\(k\)超过最大值的时候无解

证明:用反证法证明。如果存在\(p_i<p_j,i<j\),那么交换\(p_i\)和\(p_j\)之后分类讨论可知答案不会更差

其余情况可以知道\(k\)都有解,下面考虑构造

一个比较自然的想法就是先快速接近\(k\),依靠曼哈顿排列最大的时候,此时贡献分别为\(2(n-1),2(n-3),...\),每次计算贡献的时候都将\(k\)减掉对应的贡献,某一时刻\(k\)小于当前时刻的贡献的时候,由于\(k\)为偶数,所以将\(k/2\),然后对当前数\(i\)找到\(i+\frac{k}{2}\)即可,剩下的数都不错排

看不懂见代码,比较easy

标签:...,曼哈顿,Permutations,奇偶性,贡献,Manhattan
From: https://www.cnblogs.com/dingxingdi/p/18341835

相关文章

  • Manhattan Triangle
    纪念一下代码打得太慢了导致比赛结束3分钟才做出来的E题我的做法:考虑确定枚举三角形的一个点。最开始尝试枚举\(x\)最大的点,但是后面发现不太好讨论,于是尝试枚举\(x\)在中间的点,此时发现由于曼哈顿是三角形不可能是钝角三角形,剩下两个点要么同时在中间点的上方,要么同时在中间点......
  • Splittable Permutations
    第一次自己独立做出来的*2500,纪念一下首先模拟样例不难发现我们可以确定在\(l,r\)中出现过的数字(称这些数为“固定数”)的相对顺序(比如第一个样例,相对顺序为6425,我们只用插入\(1\)和\(3\)就好了),用链表维护就好了考虑剩下的某个数\(x\),不难发现它能放在的地方必须要求与其相邻......
  • CF1979E Manhattan Triangle
    题目描述给定\(n\)个点,找出三个点使得这三个点两两之间的曼哈顿距离为偶数\(d\)\[n\le300000\]题解与一个点的曼哈顿距离为\(d\)的点是一个斜\(45°\)的正方形设这个点坐标为\((x,y)\)考虑另外两个点可能在哪些位置,如果另外两个点在正方形的同一条边上,那么这两个点的横纵......
  • Learning Latent Permutations with Gumbel-Sinkhorn Networks
    目录概SinkHornoperatorMeanG.E.,BelangerD.,LindermanC.andSnoekJ.Learninglatentpermutationswithgumbel-sinkhornnetworks.ICLR,2018.概本文提出了一种自动学习permutations的方法.SinkHornoperatorSinkHornoperator的操作流程如下:\[S^{0}(......
  • CF1089I Interval-Free Permutations
    标签:析合树析合树就是用来处理这一种值域连续段的问题的。OI-wiki上对于析合树的讲解。我们回顾一下题目,要求不存在长度为\([2,n-1]\)之间的连续段,换句话说,就是根节点下恰有\(n-1\)个节点,且没有任何一个字段是题目中要求的连续段。我们记这样的答案为\(A_n\)也就......
  • permutations and combinations in js All In One
    permutationsandcombinationsinjsAllInOnejs中的排列组合概念排列组合demos/*permutations&combinations排列&组合https://leetcode.com/problems/3sum/给定一个数字数组,找出有三个元素为一组构成的所有不重复的子数字数组!*///constarr=[1,2,......
  • SP64 PERMUT1 - Permutations 题解
    题目传送门前置知识动态规划基础解法设\(f_{i,j}\)表示\(1\simi\)的全排列中存在\(j\)个逆序对的方案数,状态转移方程为\(f_{i,j}=\sum\limits_{k=j-\min(i-1,j)}^{j}f_{i-1,k}=\sum\limits_{k=0}^{j}f_{i-1,k}-\sum\limits_{k=0}^{j-\min(i-1,j)-1}f_{i-1,k}\)。需......
  • 「CF1677D」Tokitsukaze and Permutations的题解
    「CF1677D」TokitsukazeandPermutations首先,若\(v\)的后\(k\)个数中有一个\(>0\),或有\(v_i>i-1(i\in[1,n])\),则无解。我们发现,每次对\(p\)进行了一次操作后,\(v\)也一定会对应的进行一次变化,所以统计\(p\)的个数就相当于统计\(v\)的个数。我们对于每一次冒泡排序......
  • CF1861E Non-Intersecting Subpermutations 题解
    简要题意一个长度为\(n\)的元素在\([1,k]\)的整数序列\(a\)的价值定义如下。初始\(i=1\),如果\(a_{i\simi+k-1}\)包含了\(1\simk\)的所有整数,则价值加\(1\),然后令\(i=i+k\)。如果没有包含\(1\simk\)的所有整数则\(i=i+1\),直到\(i\geqn-k+2\)时结束。......
  • [ABC265F] Manhattan Cafe 题解
    [ABC265F]ManhattanCafe题解思路解析很有思维难度的一道题。思路是dp,\(f[i][j][k]\)表示已经计算了\(i\)维,距离点\(p\)的距离为\(j\),距离点\(q\)的距离为\(k\)时的整点\(r\)个数,由此可见我们的每一维都可以从上一维推出来,也即\(f[i][j][k]\)可以由\(f[i-1][j......