题解 CF1359A Berland Poker

Posted werner-yin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 CF1359A Berland Poker相关的知识,希望对你有一定的参考价值。

题意

给出 (n,m,k) ,表示 (k) 名玩家打牌,共 (n) 张牌,(m) 张王,保证 (k|n) ,记得分为 拿到最多王的玩家手中王数 (-)拿到第二多王的玩家手中的王数,求得分最大值

思路

首先,每人有 (n/k) 张牌,

假设有玩家手气特好,抽一张一个王,那他最多有 (maxn=max{m,n/k}) 张牌,

在此情形下,还剩 (m-maxn) 张王,则拿到第二多王数应该为 (leftlceildfrac{m-maxn}{k-1} ight ceil)

于是,两者相减,这题就没了。

代码

#include<bits/stdc++.h>
#define re read()
using namespace std;
const int MAXN=1e5;
int read(){
	#define ge getchar()
	int x=0,sgn=1;char ch=ge;
	for(;!isdigit(ch);ch=ge)if(ch==‘-‘)sgn=-1;
	for(;isdigit(ch);ch=ge)x=(x<<1)+(x<<3)+(ch^48);
	return x*sgn;
}
int n,m,k,T;
int main (){
	T=re;
	while(T--){
		n=re;m=re;k=re;
		int maxn=min(n/k,m),minn=max(0,(m-maxn+k-2)/(k-1));
		printf("%d
",maxn-minn);
	}
	return 0;
}

以上是关于题解 CF1359A Berland Poker的主要内容,如果未能解决你的问题,请参考以下文章

Educational Codeforces Round 88 (Rated for Div. 2) A. Berland Poker

Educational Codeforces Round 88 (Rated for Div. 2) A. Berland Poker

A. Berland Poker1000 / 贪心 思维

CF723D Lakes in Berland

[CF1519C]Berland Regional

CF1005F Berland and the Shortest Paths 最短路树计数