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

    1599: [Usaco2008 Oct]笨重的石子

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1071  Solved: 755 [Submit][Status][Discuss]

    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.
     
    水题
    #include <cstdio>
    #include <cstring>
    char buf[10000000], *ptr = buf - 1;
    inline int readint(){
        int n = 0;
        char ch = *++ptr;
        while(ch < '0' || ch > '9') ch = *++ptr;
        while(ch <= '9' && ch >='0'){
            n = (n << 1) + (n << 3) + ch - '0';
            ch = *++ptr;
        }
        return n;
    }
    int s[4], mx, dp[90] = {0};
    int main(){
        fread(buf, sizeof(char), sizeof(buf), stdin);
        for(int i = 1; i <= 3; i++) s[i] = readint();
        mx = s[1] + s[2] + s[3];
        dp[0] = 1;
        for(int i = 1; i <= 3; i++)
            for(int j = mx; ~j; j--){ 
                dp[j] = 0;
                for(int k = 1; k <= s[i] && k <= j; k++)
                    dp[j] += dp[j - k];
            }
        int ans = 0;
        for(int i = 3; i <= mx; i++)
            if(dp[i] > dp[ans]) ans = i;
        printf("%d
    ", ans);
        return 0;
    }
  • 相关阅读:
    JMM简述
    spring简读
    Linux常用命令
    基于java的八大排序实现
    数据库事务说明
    BIO、NIO、AIO区别与联系
    ThreadLocal 是什么?有哪些使用场景?
    ConcurrentHashMap 和 Hashtable 比较,为什么推荐使用ConcurrentHashMap?
    sychronized设计原理
    MySQL索引详解
  • 原文地址:https://www.cnblogs.com/ruoruoruo/p/7481485.html
Copyright © 2011-2022 走看看