专栏文章
题解:P2911 [USACO08OCT] Bovine Bones G
P2911题解参与者 4已保存评论 4
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mip5r582
- 此快照首次捕获于
- 2025/12/03 06:36 3 个月前
- 此快照最后确认于
- 2025/12/03 06:36 3 个月前
简单的枚举题
题目内容
Bessie买了三个骰子分别有 、 和 个面()。她不断掷骰子,要找出三个骰子的和出现得最频繁的那个(如果有多个和出现的频率相同,则输出其中最小的和)。
分析
枚举三个骰子所有可能的组合的和,统计每个和出现的次数。然后找出出现次数最多的和,如果有多个一样的就选最小的那个。这里我用了一个 数组记录每个和出现的次数,最后遍历 数组,打擂找到出现次数最多的和。
代码
CPP#include<bits/stdc++.h>
using namespace std;
int s1,s2,s3,he[16005],maxn=-INT_MAX;
int maxx=-INT_MAX,h;
int main(){
cin>>s1>>s2>>s3;
for(int i=1;i<=s1;i++){
for(int j=1;j<=s2;j++){
for(int k=1;k<=s3;k++){//标记所有和出现次数。
he[i+j+k]++;
maxn=max(maxn,i+k+j);
}
}
}
for(int i=1;i<=maxn;i++){//遍历所有可能的和,找到出现次数最多的最小的和。
if(he[i]>maxx){
maxx=he[i];
h=i;//用 h 记录最小的和。
}
}
cout<<h;
return 0;
}
相关推荐
评论
共 4 条评论,欢迎与作者交流。
正在加载评论...