BZOJ 1599: [Usaco2008 Oct]笨重的石子( 枚举 )

直接枚举

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

#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
[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.

HINT

Source

资格赛

时间: 2024-10-12 02:17:00

BZOJ 1599: [Usaco2008 Oct]笨重的石子( 枚举 )的相关文章

BZOJ1599: [Usaco2008 Oct]笨重的石子

1599: [Usaco2008 Oct]笨重的石子 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 758  Solved: 513[Submit][Status] Description 贝西喜欢棋盘游戏和角色扮演类游戏所以她说服Farmer John把她带到玩具店,在那里,她购买了三个不同的骰子,这三个质量均匀的骰子,分别有S1,S2,S3个面.(2 <= S1 <= 20; 2 <= S2 <= 20; 2 <= S3

bzoj 1602 [Usaco2008 Oct]牧场行走(LCA模板)

1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 379  Solved: 216[Submit][Status][Discuss] Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走,第i条边连接第Ai,Bi块牧场,第i条边的长度是Li(1<=Li<=1

BZOJ 1602: [Usaco2008 Oct]牧场行走( 最短路 )

一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了.. ---------------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<queue> #include<cstring> #include<iostream> #define rep( i ,

BZOJ 1600 [Usaco2008 Oct]建造栅栏 DP

题意:链接 方法: DP 解析: 一眼DP题. 四边形好像和三角形没什么大区别,就是三边之和大于另一边就行了. 所以我们可以搞出来最大的边长度不超过多少. 不过好像做这道题的大部分时间我都在梦游? 第一发代码绝壁脑残了 第一发代码居然求出了最大边的上下边界,然后枚举最大边长度跑一个DP. 不过这样是错的. 写完我就发现了=-=梦游简直.. 为什么是错的呢,因为最大边的位置不固定啊-这样转移是搞不出来结果哒. 反正之前都在梦游,想缩复杂度却强行多了个n/4的循环? 所以还是别想太多辣,直接f[i]

BZOJ 1600 Usaco2008 Oct 建造栅栏

题目大意:给定一个长度为n(n≤2500)的木板,要求分成4部分拼成一个面积为正的四边形,求方案数 能拼成一个面积为正的四边形等价于任意一个木板的长度<n2 切割点有3个,前两个枚举,第三个O(1)计算即可 时间复杂度O(n2) #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; int n,ans; int

BZOJ 1601: [Usaco2008 Oct]灌水( MST )

MST , kruskal 直接跑 ---------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<vector> #include<cstring> #include<iostream> #define rep( i , n ) for( int i = 0 ; i <

BZOJ 1602: [Usaco2008 Oct]牧场行走

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1602 解:lca的模板,我用的是倍增. 程序: #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> using namespace std; struct ding{ int to,next,val; }edge[2010]; int n,q,f[1010][

BZOJ——1602: [Usaco2008 Oct]牧场行走

http://www.lydsy.com/JudgeOnline/problem.php?id=1602 题目描述 N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走,第i条边连接第Ai,Bi块牧场,第i条边的长度是Li(1<=Li<=10000). 这些边被安排成任意两头奶牛都可以通过这些边到达的情况,所以说这是一棵树. 这些奶牛是非常喜欢交际的,经常会去互相访问,他们

BZOJ 1603 Usaco2008 Oct 打谷机 DFS

题目大意:给定一棵树,每个点是一个齿轮,1号齿轮顺时针旋转,每条边有同向和反向两种连接方式,求n号齿轮的旋转方向 DFS一遍即可 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 1010 using namespace std; struct abcd{ int to,f,next; }table[M<<1]; int