首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
AT1984 Wide Swap
】的更多相关文章
AT1984 Wide Swap
AT1984 Wide Swap 题意翻译 给出一个元素集合为\(\{1,2,\dots,N\}(1\leq N\leq 500,000)\)的排列\(P\),当有\(i,j(1\leq i<j\leq N)\)满足\(j-i\geq K\)\((1\leq K\leq N-1)\)且\(|P_{i}-P{j}|=1\)时,可以交换\(P_{i}\)和\(P_{j}\) 求:可能排列中字典序最小的排列 输入格式: \(N\) \(K\) \(P_{1}\) \(P_{2}\) \(\dots\)…
【AtCoder Grand Contest 001F】Wide Swap [线段树][拓扑]
Wide Swap Time Limit: 50 Sec Memory Limit: 512 MB Description Input Output Sample Input 8 3 4 5 7 8 3 1 2 6 Sample Output 1 2 6 7 5 3 4 8 HINT Solution 首先,直接做难度系数较高,假设原序列为a,我们考虑设一个p,p[a_i] = i,即将题目中的权值与下标调换. 那么显然,要令a字典序最小,只要让p字典序最小即可.因为“权值小的尽量前”与“前面…
AtCoder AGC001F Wide Swap (线段树、拓扑排序)
题目链接: https://atcoder.jp/contests/agc001/tasks/agc001_f 题解: 先变成排列的逆,要求\(1\)的位置最小,其次\(2\)的位置最小,依次排下去(称之为逆字典序).有一些条件,如果两数\(x,y\)的差小于\(K\), 那么它们的相对位置不可变. 所以如果从必须在前面的往必须在后面的连边,得到的图将是一个DAG,现在需要求它的一个拓扑序满足上面的最优化条件. 先排除几个错误结论: 翻转后字典序越大,字典序越小,错误.逆字典序越大,字典序越大/…
AGC001F - Wide Swap
Description 给你一个长度为$n$的排列,每次可以交换$|i-j|\geq K$并且$|a_i-a_j|=1$的数对,问你经过若干次变换后最小字典序的排列是啥 Solution 对$a$做一个变换,令$b_{a_i}=i$,$b$数组的意思就是$i$在哪个位置 那么问题就转化成 你可以交换相邻的$|b_i-b_{i+1}|\geq K$的数对 这个时候很多人都说只要令$b$的字典序最小就可以了,但我感觉不是很对.. 毕竟$b$字典序小和$a$字典序小没有什么关系啊.. 再想一想上面条件…
AGC001 F - Wide Swap【线段树+堆+拓扑排序】
给出的模型很难搞,所以转换一下,记p[i]为i这个数的位置,然后相邻两个p值差>k的能交换,发现使原问题字典序最小也需要使这里的字典序最小 注意到p值差<=k的前后顺序一定不変,那么可以n^2建图用堆跑最小字典序拓扑序 考虑优化,每个点需要向[p[i]-k+1,p[i]+k-1]这段区间的数连边,但是有一些边是多余的,也就是区间[p[i]-k+1,p[i]],[p[i],p[i]+k-1]这两个区间内的数一定两两有边所以连向当前点后面最近的一个即可,这个用线段树来找 #include<i…
AtCoder Grand Contest 001F Wide Swap
解法参考这位大佬的:https://www.cnblogs.com/BearChild/p/7895719.html 因为原来的数组不好做于是我们想反过来数组,根据交换条件:值相邻且位置差大于等于k,那么在变换后的数组就变成了位置相邻且差值大于等于k.这样的话变换操作变成了,相邻的大于等于k的值临近交换,于是我们注意到因为现在只能临近交换的原因,两个差值小于k的数他们的相对位置不可能发生改变.那么问题就变成了,在只有一些相对位置限制条件下,无限制的可以随意交换位置,求这个数组的最小字典序(原数组…
题解 Wide Swap
题目传送门 题目大意 给出一个长度为 \(n\) 的排列 \(a_{1,2,...,n}\) 以及常数 \(k\),每次可以交换两个数 \(a_i,a_j\) 当且仅当 \(j-i\ge k \text{ and } |a_i-a_j|=1\) ,问最小能变成的最小字典序的 \(a\) 序列. \(n\le 5\times 10^5\) 思路 首先很重要的一点是,我们肯定得把题目转换一下,不然 \(j-i\ge k\) 这个条件太难用了.我们其实可以设 \(p_i\) 表示元素 \(i\) 所在…
[atAGC001F]Wide Swap
结论:排列$p'_{i}$可以通过排列$p_{i}$得到当且仅当$\forall 1\le i<j<i+k,(p_{i}-p_{j})(p'_{i}-p'_{j})>0$ 证明:构造$b_{p_{i}}=i$,交换即令$b_{i}$与$b_{i+1}$交换,条件为$|b_{i}-b_{i+1}|\ge k$,那么对于$x<y$的$|b_{x}-b_{y}|<k$,相对位置不会发生改变,同时其他位置可以任意交换,反映在$p'_{i}$上即$p'_{b_{x}}$和$p'_{b_…
Atcoder Grand Contest 001 F - Wide Swap(拓扑排序)
Atcoder 题面传送门 & 洛谷题面传送门 咦?鸽子 tzc 来补题解了?奇迹奇迹( 首先考虑什么样的排列可以得到.我们考虑 \(p\) 的逆排列 \(q\),那么每次操作的过程从逆排列的角度思考,就可视作每次在逆排列中交换两个相邻,且元素值之差 \(\ge k\) 的元素.注意到对于两个元素 \(x,y\),如果 \(|x-y|<k\),那么我们肯定永远无法交换它们,它们的相对位置顺序也永远无法改变,因为要改变它们的相对顺序必须交换它们.而一对 \(|q_i-q_j|<k,i&l…
RE:从零开始的AGC被虐(到)生活(不能自理)
RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious Light 设 \(f(x, y)\) 为上一次反射长度为 \(x\) ,边界长度为 \(y\) 的答案,容易观察得到 \(f(x, y) = 2 \times \lfloor\frac{y}{x}\rfloor \times x + f(y \mod x, x)\) C: Shorten Diame…