TB椰程 TypeBuddy 打字搭子

[USACO08OCT] Bovine Bones G

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 577 字

三骰子求和,输出出现最频繁的和(最小)

  • 洛谷
  • 练习

正文

// 原题:https://oj.yecheng.tv/p/1406
// 题意:三个骰子面数 S1,S2,S3,求出现概率最大的三数之和,并列取最小。
// 思路:枚举所有组合统计各和的频率,取频率最大且和最小者。
// 复杂度:O(S1*S2*S3),上限 20*20*40。
// 易错点:并列时输出最小的和;频率用数组统计。
#include <iostream>
using namespace std;
int main(){
    int s1, s2, s3, freq[205] = {0}, best = 0, bestSum = 200;
    cin >> s1 >> s2 >> s3;
    for(int a = 1; a <= s1; a++)
        for(int b = 1; b <= s2; b++)
            for(int c = 1; c <= s3; c++) freq[a + b + c]++;
    for(int s = 3; s <= 200; s++)
        if(freq[s] > best){ best = freq[s]; bestSum = s; }
    cout << bestSum << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK