zoukankan      html  css  js  c++  java
  • [BZOJ1599] [Usaco2008 Oct] 笨重的石子

    Description

      贝西喜欢棋盘游戏和角色扮演类游戏所以她说服Farmer John把她带到玩具店,在那里,她购买了三个不同的骰子,这三个质量均匀的骰子,分别有S1,S2,S3个面。(2 <= S1 <= 20; 2 <= S2 <= 20; 2 <= S3 <= 40). 贝西掷啊掷啊掷啊,想要知道出现几率最大的和是多少。 问题给出三个骰子的面数,让你求出出现几率最大的和是多少。如果有很多种和出现的几率相同,那么就输出小的那一个。

    Input

      *第一行:三个由空格隔开的整数:s1,s2,s3

    Output

      *第一行:所要求的解

    Sample Input

    3 2 3

    Sample Output

    5

      输出详解:
      这里是所有可能的情况.
    1 1 1 -> 3        1 2 1 -> 4        2 1 1 -> 4        2 2 1 -> 5        3 1 1 -> 5        3 2 1 -> 6
    1 1 2 -> 4        1 2 2 -> 5        2 1 2 -> 5        2 2 2 -> 6        3 1 2 -> 6        3 2 2 -> 7
    1 1 3 -> 5        1 2 3 -> 6        2 1 3 -> 6        2 2 3 -> 7        3 1 3 -> 7        3 2 3 -> 8
      5和6出现的几率都是最大的,所以输出5.

    HINT 

    Source

      资格赛

    Solution

      三层for循环就结了。@czj答案为什么不一定是(s1+s2+s3)/2向下取整
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int sum[100];
     4 int main()
     5 {
     6     int a, b, c, ans = 3;
     7     cin >> a >> b >> c;
     8     for(int i = 1; i <= a; i++)
     9         for(int j = 1; j <= b; j++)
    10             for(int k = 1; k <= c; k++)
    11                 sum[i + j + k]++;
    12     for(int i = 4; i <= a + b + c; i++)
    13         if(sum[i] > sum[ans]) ans = i;
    14     cout << ans << endl;
    15     return 0;
    16 }
    View Code
  • 相关阅读:
    2016.7.15
    2016.7.15
    2016.7.8
    2016.7.8
    2016.7.6
    2016.7.1--测评官网系列--手机行业
    2016.6.28--测评官网系列--牛奶行业
    2016.6.27
    Java中的Timer和TimerTask在Android中的用法
    Android 计时器Timer用法
  • 原文地址:https://www.cnblogs.com/CtrlCV/p/5351276.html
Copyright © 2011-2022 走看看