题解:P2911 [USACO08OCT] Bovine Bones G
dengrunze2608 · · 题解
简单的枚举题
题目内容
Bessie买了三个骰子分别有
分析
枚举三个骰子所有可能的组合的和,统计每个和出现的次数。然后找出出现次数最多的和,如果有多个一样的就选最小的那个。这里我用了一个
代码
#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;
}