首页 > 其他分享 >Codeforces Round 730 (Div. 2) B. Customising the Track

Codeforces Round 730 (Div. 2) B. Customising the Track

时间:2023-10-02 18:44:18浏览次数:38  
标签:int Track sum Codeforces long 730 cdots Customising

有 \(n\) 条高速公路,第 \(i\) 条告诉公路上的车流为 \(a_i\) 。现在可以执行以下操作任意次:

  • 将第 \(i\) 条高速公路上的一辆车移到第 \(j\) 条高速公路。

需要求最小的 \(\sum_{i = 1}^{n}\sum_{j=i+1}^{n} |a_i - a_j|\) 。

不难发现可以构造 \(\forall i,j, a_i = a_j\) 使任意两对的贡献为 \(0\) 。

存在余数 \(r\) 的情况下,会得到 \(p+1, p+1, \cdots, p+1, p\cdots,p,p\) 等效于 \(1,1,\cdots,1,0,\cdots,0,0\) 。这种排布可以使得贡献最低,可以通过调整法证明正确性。

答案为 \(r \times (n - r)\) 。

view
#include <bits/stdc++.h>
typedef long long ll;
void solve(){
	int n; std::cin >> n;
	ll sum = 0;
	for (int i = 1, x; i <= n; i++) std::cin >> x, sum += x;
	int r = sum % n;
	std::cout << 1LL * r* (n - r) << '\n';
}
		                
int main() {
	int _ = 1; std::cin >> _;
	while (_--) {solve();}
	return 0;
}

实际上这题应用的是一个典:
对于数组 \(a\) ,当 \(a\) 的排布为 \(p+1,p+1,\cdots,p+1,p,\cdots,p,p\) 时。\(\sum_{i=1}^{n}\sum_{j=i+1}^{n} a_i - a_j\) 能取到最小且答案为 \(m \times (n - m)\) 。

标签:int,Track,sum,Codeforces,long,730,cdots,Customising
From: https://www.cnblogs.com/zsxuan/p/17740305.html

相关文章

  • Educational Codeforces Round 112 (Rated for Div. 2) A. PizzaForces
    有三种披萨:\(6\)、\(8\)、\(10\)块披萨。制作时间分别需要:\(15\)、\(20\)、\(25\)分钟。现在有\(n\)个人,每人需要一块披萨。询问使所有人能获得披萨的最快时间。观察:发现三种披萨的性价比都一样。(否则按最优性价比贪心)需要让得到的披萨数量\(m\geqn\)。不妨让\(n\)对......
  • 题解 Codeforces Round 901 (Div. 1) / CF1874A~E
    题解CodeforcesRound901(Div.1)/CF1874A~E比赛情况:过了AB。赛后发现B是假复杂度。https://codeforc.es/contest/1874A.JellyfishandGameProblemAlice&Bob又在博弈,Alice手上有\(n\)个苹果,第\(i\)个苹果的价值是\(a_i\);Bob手上有\(m\)个苹果,第\(i\)......
  • Codeforces Round #885 (Div. 2)
    赛时A题意理解错误,导致A调试半小时没出样例,直接提前下班-->https://codeforces.com/contest/1848A.JellyfishandUndertale题意:初始时长为b的定时炸弹,没秒从n个工具中选一个加时长\(x_i\),每次加时不能超过a,并流失一秒。问:炸弹爆炸前的最长时间是多长?思路:贪心枚举每个工具,每次......
  • Codeforces 1765H 题解
    题目大意题目大意给定一个\(n\)个点和\(m\)条边的有向图,并给定\(p_1,p_2,\cdots,p_n\)表示第\(i\)个点的拓扑序必须小于等于\(p_i\),求出每个点的最小拓扑序。题解题解题目要求拓扑序尽量小,转换一下就是在反图上拓扑序尽量大。考虑拓扑排序,当一个点不得不入队......
  • Codeforces Round 901 (Div
    C.JellyfishandGreenApple题解显然\(n\%m=0\),答案一定为\(0\)如果\(n>m\),我们显然可以将\(n/m\)的苹果分给每个人,然后再处理$n%m$如果\(n<m\),我们一定会将所有苹果一直对半切直到\(n>m\),所以答案每次对半切一定会加\(n\)直到\(n\%m=0\)的时......
  • Codeforces Round 895 (Div. 3)
    A题简单的模拟计算,注意上取整的实现。B题计算每个房间对应的每个最迟时间点,在这些时间点最取最小值,保证能安全通过所有房间。D题拿到手就可以发现是贪心,但发现两部分会有冲突,也就是重复计算的部分。故提前找到两个数的lcm然后不计算lcm的倍数,为其他参与计算的数安排剩余数种的最......
  • Codeforces 1278D 题解
    题目大意题目大意给你\(n\)(\(1\leqslantn\leqslant5\cdot10^5\))条线段\([l_1,r_1],[l_2,r_2],\cdots,[l_n,r_n]\)(\(1\lel_i<r_i\le2n\))。保证每条线段的端点为整数,且\(\foralli,j\)(\(i\nej\)),不存在\(l_i=l_j\)或\(r_i=r_j\),不存......
  • Codeforces Round 811 (Div. 3)
    A.EveryoneLovestoSleep#include<bits/stdc++.h>usingnamespacestd;voidsolve(){intn,h,m,t;cin>>n>>h>>m;t=h*60+m;vector<int>a;for(inti=1,x,y;i<=n;i++)cin......
  • Codeforces 1702G2 题解
    题目大意给出一个大小为\(n\)的树,\(q\)次询问,每次给出一个大小为\(m\)的点集,判断是否有一条链覆盖这些点(这条链可以经过其他点)。\(n,\summ\leqslant2\cdot10^5\),\(q\leqslant10^5\)。提示提示1思考将$m$个点按深度排序。题解题解考虑将\(m\)个点按树......
  • CodeForces 1874B Jellyfish and Math
    洛谷传送门CF传送门看到这种操作乱七八糟不能直接算的题,可以考虑最短路。对于\(a,b,c,d,m\)按位考虑,发现相同的\((a,b,m)\)无论如何操作必然还是相同的。于是考虑对于每个可能的\((0/1,0/1,0/1)\),所有终态有\((c=0/1,d=0/1)\)或者不确定。这样我们对于一......