Codeforces Round #354 (Div. 2)-B
Mary has just graduated from one well-known University and is now attending celebration party. Students like to dream of a beautiful life, so they used champagne glasses to construct a small pyramid. The height of the pyramid isn. The top level consists of only 1 glass, that stands on 2 glasses on the second level (counting from the top), then 3glasses on the third level and so on.The bottom level consists of n glasses.
Vlad has seen in the movies many times how the champagne beautifully flows from top levels to bottom ones, filling all the glasses simultaneously. So he took a bottle and started to pour it in the glass located at the top of the pyramid.
Each second, Vlad pours to the top glass the amount of champagne equal to the size of exactly one glass. If the glass is already full, but there is some champagne flowing in it, then it pours over the edge of the glass and is equally distributed over two glasses standing under. If the overflowed glass is at the bottom level, then the champagne pours on the table. For the purpose of this problem we consider that champagne is distributed among pyramid glasses immediately. Vlad is interested in the number of completely full glasses if he stops pouring champagne in t seconds.
Pictures below illustrate the pyramid consisting of three levels.


The only line of the input contains two integers n and t (1 ≤ n ≤ 10, 0 ≤ t ≤ 10 000) — the height of the pyramid and the number of seconds Vlad will be pouring champagne from the bottle.
Print the single integer — the number of completely full glasses after t seconds.
3 5
4
4 8
6
In the first sample, the glasses full after 5 seconds are: the top glass, both glasses on the second level and the middle glass at the bottom level. Left and right glasses of the bottom level will be half-empty.
题意:现在有n层杯子,摆放如图所示,每秒会有1个杯子容量的水倒进最上面的杯子中。如果某一个杯子装满了,那么就会流到下面的杯子,最下面一层的杯子则会流到桌子上,问T秒后有多少个杯子装满了水。
思路:简单模拟下就好了。
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <set>
using namespace std;
typedef long long int LL;
const int MAXN = + ;
double cap[MAXN][MAXN];
int vis[MAXN][MAXN],n,t;
void dfs(int x, int y, double val)
{
cap[x][y] += val;
if (vis[x][y])
{
if (x < )
{
dfs(x + , y + , cap[x][y] / 2.0);
dfs(x + , y, cap[x][y] / 2.0);
cap[x][y] = ;
}
}
else
{
if (cap[x][y] >= )
{
vis[x][y] = ;
cap[x][y] -= ;
if (x < )
{
dfs(x + , y + , cap[x][y] / 2.0);
dfs(x + , y, cap[x][y] / 2.0);
cap[x][y] = ;
}
}
}
}
int main()
{
//#ifdef CYM
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
//#endif
while (scanf("%d%d", &n,&t)!=EOF)
{
int ans = ;
memset(cap, , sizeof(cap));
memset(vis, , sizeof(vis));
dfs(,,t);
for (int i = ; i < n; i++)
{
for (int j = ; j <= i; j++)
{
if (vis[i][j])
{
ans++;
}
}
}
printf("%d\n", ans);
}
return ;
}
Codeforces Round #354 (Div. 2)-B的更多相关文章
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #354 (Div. 2)-D
D. Theseus and labyrinth 题目链接:http://codeforces.com/contest/676/problem/D Theseus has just arrived t ...
- Codeforces Round #354 (Div. 2)-C
C. Vasya and String 题目链接:http://codeforces.com/contest/676/problem/C High school student Vasya got a ...
- Codeforces Round #354 (Div. 2)-A
A. Nicholas and Permutation 题目链接:http://codeforces.com/contest/676/problem/A Nicholas has an array a ...
- Codeforces Round #354 (Div. 2) D. Theseus and labyrinth
题目链接: http://codeforces.com/contest/676/problem/D 题意: 如果两个相邻的格子都有对应朝向的门,则可以从一个格子到另一个格子,给你初始坐标xt,yt,终 ...
- Codeforces Round #354 (Div. 2) C. Vasya and String
题目链接: http://codeforces.com/contest/676/problem/C 题解: 把连续的一段压缩成一个数,对新的数组求前缀和,用两个指针从左到右线性扫一遍. 一段值改变一部 ...
- Codeforces Round #354 (Div. 2)_Vasya and String(尺取法)
题目连接:http://codeforces.com/contest/676/problem/C 题意:一串字符串,最多改变k次,求最大的相同子串 题解:很明显直接尺取法 #include<cs ...
- Codeforces Round #354 (Div. 2) E. The Last Fight Between Human and AI 数学
E. The Last Fight Between Human and AI 题目连接: http://codeforces.com/contest/676/problem/E Description ...
- Codeforces Round #354 (Div. 2) D. Theseus and labyrinth bfs
D. Theseus and labyrinth 题目连接: http://www.codeforces.com/contest/676/problem/D Description Theseus h ...
随机推荐
- js中sort()方法的用法,参数以及排序原理
sort() 方法用于对数组的元素进行排序. 语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函数. 注:如果调用该方法时没有使用参数,将按字母顺序对 ...
- 利用冒泡对List排序
SysMenu是List集合中的类型,在这是一个菜单实体. public List<SysMenu> selfMenuSort(List<SysMenu> list) { fo ...
- WPS文字在表格中打字自动跳动
可以设置表格的属性来实现. 1.选择表格,点击鼠标右键,选择“表格属性” 2.在出现的对话框中,文字环绕选择“无”,“行”的设置为“允许跨页断行”,就可以了.
- IOS - UITableView分批显示数据 实现点击加载更多
Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...
- IOS - 本地消息推送
第一步:创建本地推送 // 创建一个本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autor ...
- loadrunner备忘
1.超时设置 2. 可能是操作系统的环境不适合或者浏览器的版本有出入,具体的loadrunner版本支持的IE版本版本如下所示,请仔细核对是否正确.LR版本和IE版本兼容性问题,这个问题是我们安装环境 ...
- java annotation
import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.an ...
- XMPP框架下微信项目总结(3)获取点子名片信息(个人资料)更新电子名片
思路:1 调用方法,添加点子名片模块(名片信息含电话,头像,单位个人信息)等 开启ps:APP发送请求到服务器openfire,服务器返回个人信息,app存储到数据库,app界面需要数据通过数据库获取 ...
- iOS 十六进制和字符串转换
NSString *dictString = [dict JSONFragment];//组合成的. dictString==={"content":"Sadgfdfg& ...
- Java动态代理一Proxy
什么是动态代理? 动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实.代理一般会实现它所表示的实际对象的接口.代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功 ...