- 2024-07-07Equalize
Equalize题面翻译有一个给定的长度为\(n\)的数列\(a\),现在加上一个排列\(b\),即\(c_i=a_i+b_i\)。现在求对于所有可能的\(b\),\(c\)中出现最多的数的出现次数的最大值。translateby@UniGravity.题目描述Vasyahastwohobbies—addingpermutations$^{\dagger}$
- 2024-06-02D. Divide and Equalize
题解我们只需要将每个数拆成质因数相乘的形式,然后对每个质因数累加,最后观察每个质因数出现的次数是不是数组长度的整数倍即可。code #include<bits/stdc++.h>usingnamespacestd;constintN=1e4+5;inta[N];map<int,int>map1;boolss(intm){for(inti=2;i<
- 2024-05-17Codeforces 1037C Equalize 题解
题目描述给定两个长度为$n$的$01$序列$a,b$。每次可以执行如下操作:在$a$中选择一个位置$p$,将$a_p$变为$1-a_p$,代价是$1$。在$a$中选择两个位置$p,q$,将$a_p$和$a_q$互换,代价是$\lvertq-p\rvert$。问最少需要多少代价才能将$a$变成$b$。题目分析
- 2024-02-20Equalize
这道题目的官方题解讲的就很好但是这个构造方法确实比较好,我当时想到了排序+去重,但是最后判断的时候利用了贪心,对任何一个剩下的元素\(a\),最后如果他要参与贡献的话,这个众数必须是\([a+1,a+n]\)中的一个数,而由于\(a\)从小到大排了序的,我们依次考虑的话,显然是每个\(a\)都选择\(a+
- 2024-02-12Codeforces Round 924 (Div. 2)B. Equalize(思维+双指针)
目录题面链接题意题解代码题面链接B.Equalize题意给一个数组\(a\),然后让你给这个数组加上一个排列,求出现最多的次数题解赛时没过不应该。最开始很容易想到要去重,因为重复的元素对于答案是没有贡献的。去重后排序。,然后维护一个极差小于n-1的区间,,区间长度就是可能的答案
- 2023-12-06C. Insert and Equalize
原题链接导论1.数列末尾插入一个没有在数列中出现过的数,然后对数列中的每个数加上x的若干倍数(其中的x对于每个数而言均相同),使得数列中的所有数均相等2.由导论1可以推出,x一定是\(|a[i]-a[j]|(1\leqi,j\leqn)\)的最大公约数3.导论2的时间复杂度显然太高了,因此猜想\(gcd(|a[i
- 2023-12-04CF1902 C Insert and Equalize 题解
LinkCF1902CInsertandEqualizeQuestion有一个\(n\)个元素的数组\(a\),每个元素都不一样现在我们需要在\(a\)中添加一个数字\(a_{n+1}\),和之前的元素都不一样然后选择一个数\(x\),可以在一个元素上加\(x\),为操作一次,(每次加的数都是\(x\))求,操作的最少次数Solution
- 2023-11-26[Codeforces] CF1799B Equalize by Divide
序列操作(divide.cpp)—CF1799B—1200题目描述给您一个\(a_1,a_2,\dotsa_n\)这样的正整数数组,您可以对它进行多次(可以是零次)这样的操作:选择两个索引\(i,j(1\leqi,j\leqn,i\neqj)\);将\(a_i\)赋值为\(\lceil\frac{a_i}{a_j}\rceil\)。这里的\(\lceilx\rceil\)