B. Random Teams1300 / 组合数学

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Random Teams1300 / 组合数学相关的知识,希望对你有一定的参考价值。


https://codeforces.com/problemset/problem/478/B

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL n,m;
LL get1(LL n,LL m)//最小 尽量的均分 
{
	LL b=n/m;
	if(n%m)//不可以平均分 
	{
		int temp=n-b*m;
		LL sum=0;
		for(int i=1;i<=m;i++)
		{
			if(temp) sum+=(b+1)*b/2,temp--;
			else sum+=b*(b-1)/2;
		}
		return sum;
	}else//可以平均分 
	{
		return m*b*(b-1)/2;
	}
}
LL get2(LL n,LL m)//最大: 只有一个队人数最多,其它的队人都只要1个 
{
	n=n-(m-1);
	return n*(n-1)/2;
}
int main(void)
{
	cin>>n>>m;
	LL minv=get1(n,m);
	LL maxv=get2(n,m);
	cout<<minv<<" "<<maxv<<endl;
}

以上是关于B. Random Teams1300 / 组合数学的主要内容,如果未能解决你的问题,请参考以下文章

B. T-primes1300 / 思维 数论

B. Trouble Sort1300 / 思维

B. Shuffle1300 / 思维 区间合并

B. Long Number1300 / 简单的贪心

B. Long Number1300 / 简单的贪心

B. Jzzhu and Sequences1300 / 思维 规律