BZOJ 1599: [Usaco2008 Oct]笨重的石子( 枚举 )
发布日期:2021-10-23 09:05:18 浏览次数:2 分类:技术文章

本文共 1426 字,大约阅读时间需要 4 分钟。

直接枚举 

-------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
 
#define rep( i , n ) for( int i = 0 ;  i < n ; ++i )
#define clr( x , c ) memset( x , c , sizeof( x ) )
#define Rep( i , n ) for( int i = 1 ; i<= n ; ++i ) 
 
using namespace std;
 
const int maxn = 80 + 5;
  

int cnt[ maxn ];

 
int main() {
clr( cnt , 0 );
int x[ 3 ];
rep( i , 3 )
   scanf( "%d" , x + i );
   
Rep( i , x[ 0 ] )
   Rep( j , x[ 1 ] )
       Rep( k , x[ 2 ] )
           cnt[ i + j + k ]++;
       
int Max = 0 , ans;
rep( i , maxn )
   if( cnt[ i ] > Max )
       Max = cnt[ ans = i ];
cout << ans << "\n";
return 0;
}

  

-------------------------------------------------------------------------------

1599: [Usaco2008 Oct]笨重的石子

Time Limit: 10 Sec  
Memory Limit: 162 MB
Submit: 820  
Solved: 561
[ ][ ][ ]

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

 

转载于:https://www.cnblogs.com/JSZX11556/p/4556581.html

转载地址:https://blog.csdn.net/weixin_30549657/article/details/95805500 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【题解】 bzoj2115: [Wc2011] Xor (线性基+dfs)
下一篇:spring MVC

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月07日 04时05分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章