专栏文章

题解:P2911 [USACO08OCT] Bovine Bones G

P2911题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip4zvvw
此快照首次捕获于
2025/12/03 06:15
3 个月前
此快照最后确认于
2025/12/03 06:15
3 个月前
查看原文

思路:

由题面得知,本题要求三个数的和组成的数列中的最小众数
往下看数据范围,因为 2S1202 \le S1 \le 202S2202 \le S2 \le 202S3402 \le S3 \le 40,而 20×20×40=1600020 \times 20 \times 40 = 16000,这意味着暴力不会超时。

CODE:

明确思路后代码其实很简洁。
CPP
#include<bits/stdc++.h>
using namespace std;
int a,b,c,x[100],maxn,ans=INT_MAX;
int main(){
	//此处可自行添加快读等提速代码。
	cin>>a>>b>>c;
	for(int i=1;i<=a;i++){//依次枚举。
		for(int j=1;j<=b;j++){
			for(int k=1;k<=c;k++){
				int s=i+j+k;//求和。
				x[s]++;//和为s的组合出现次数。
				if(x[s]==maxn){//最小的众数。
					ans=min(ans,s);
				}if(x[s]>maxn){//次数最大。
					maxn=x[s];
					ans=s;
				}
			}
		}
	}
	cout<<ans;//输出出现次数最多的最小的数。
	return 0;//好习惯。
}
有疑问记得私信哦!

评论

0 条评论,欢迎与作者交流。

正在加载评论...