P2911 牛骨头题解
总结:
1、桶,还是用桶,这次桶存的是三层循环遍历出来的所有可能点数和。记录每个点数和出现多少次!
2、然后一次遍历,找出最大的是哪个,最大的那个不要某个数字出现的最多次数,而是要是哪个数字,这个要注意。
#include <bits/stdc++.h>
using namespace std;
const int N = 40 + 40 + 40 + 10;
int b[N];
int MAX;
int res;
int main() {
//三个骰子 tóu zi
int x, y, z;
cin >> x >> y >> z;
//骰子上数字和的桶
for (int i = 1; i <= x; i++)//1
for (int j = 1; j <= y; j++)//2
for (int k = 1; k <= z; k++)//3
b[i + j + k]++;
//不是去求频率最大值是什么,而求频率最大值对应的是哪个数字,汗~
for (int i = 3; i <= x + y + z; i++)
//记录两个值噢~
if (b[i] > MAX) res = i, MAX = b[i];
//输出大吉
cout << res << endl;
return 0;
}