Codeforces 608E. Marbles】的更多相关文章

E. Marbles time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output In the spirit of the holidays, Saitama has given Genos two grid paths of length n (a weird gift even by Saitama's standards). A g…
题目链接: http://codeforces.com/contest/1215/problem/E 题意: 至少多少次操作可以使得相同的数都是相邻的 每次操作可以交换两个相邻的数 数据范围: $1\leq n \leq 400000$ $1\leq a_i \leq 20$ 分析: 定义$dp[i]$,$i$是状态,如果某位是1,那么就固定好了该颜色 $dp[i]$为$i$状态下需要交换的最少次数 定义$ma[i][j]$,只考虑$i,j$两种颜色时,把$i$放前面$j$放后面的最少移动次数…
传送门 注意到 $a$ 的值的数量并不大,考虑状压 $dp$ 设 $f[S]$ 表示此时确定的数集合为 $S$ ,且按某种顺序从数列开头排列完成的最小交换次数 那么每个状态枚举最后一个填的数,加上代价后,取最小值即可 现在最大的问题是,代价怎么算...??? 注意到我们每次交换相邻的两个数,这两个数和其他的数的相对位置是不变的(这个我认为是整题最关键的地方) 就是说在最优情况下,我们把数字 $x$ 统一交换到某个段时,产生的代价即为这个数原本每个位置和此时这个位置之前还没确定的数的数量....…
题目大意:给出一个由N个整数组成的序列,通过每次交换相邻的两个数,使这个序列的每个相同的数都相邻.求最小的交换次数. 比如给出序列:1 2 3 2 1 ,那么最终序列应该是 1 1 2 2 3 ,最小交换次数为4. 输入格式 第一行输入一个数字n(2≤n≤4*10^5),表示大理石的总数. 第二行输入n个数字a1,a2-,an(1≤ai≤20)表示第i块大理石的颜色为ai. 输出格式 最少交换的次数. 样例 样例输入 1 7 3 4 2 3 4 2 2 样例输出 1 3 样例输入 2 5 20…
E. Marbles time limit per test:  2 seconds memory limit per test:  256 megabytes input:  standard input output:  standard output In the spirit of the holidays, Saitama has given Genos two grid paths of length n (a weird gift even by Saitama's standar…
题目:https://codeforc.es/contest/1215/problem/E 题意:给你一个序列,你可以交换相邻的两个数,要达到一个要求,所有相同的数都相邻,问你交换次数最少是多少 思路:我们可以看到数的个数是1e5,数的范围只有20,很明显这个范围要干些什么,我们可以尝试去想一下状压,我们把数都弄到一起,然后一起状压,因为最后要变成是   xxxxyyyyyzzzkkka  的形态,所以我们可以把问题转化成 "一次放一个数", 这个思想很关键,经常在dp里面用到,这样的…
题意:给你一个长度为n的序列 问你需要多少次两两交换 可以让相同的数字在一个区间段 思路:我们可以预处理一个数组cnt[i][j]表示把i放到j前面需要交换多少次 然后二进制枚举后 每次选择一个为1的位置 考虑这个位置最后加进来的花费取最小 #include <bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; const double eps = 1e-6; const int N = 4e5+7; typedef…
题意 林老师是一位大理石收藏家,他在家里收藏了n块各种颜色的大理石,第i块大理石的颜色为ai.但是林老师觉得这些石头在家里随意摆放太过凌乱,他希望把所有颜色相同的石头放在一起.换句话说,林老师需要对现有的大理石重新进行排列,在重新排列之后,对于每一个颜色j,如果最左边的颜色为j的大理石是第l块大理石,最右边的颜色为j的大理石是第r块大理石,那么从第l块大理石到第r块大理石,这些石头的颜色都为j. 由于这些大理石都比较重,林老师无法承受这些大理石的重量太久,所以他每次搬运只能交换相邻的两块大理石.…
A. Saitama Destroys Hotel time limit per test:1 second memory limit per test:256 megabytes input:standard input output:standard output Saitama accidentally destroyed a hotel again. To repay the hotel company, Genos has volunteered to operate an eleva…
A. Eleven time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Eleven wants to choose a new name for herself. As a bunch of geeks, her friends suggested an algorithm to choose a name for her. El…