UVA 12627 气球胀啊胀
来源:互联网 发布:组织胚胎学试题软件 编辑:程序博客网 时间:2024/04/28 13:07
题目在此
题意:第0个小时有一个红气球,每过一个小时,一个红气球膨胀为3个红球和1个蓝球
一个蓝球膨胀为4个蓝球,排成下图的样子,问过了k小时,第a行到第b行有多少个红球
看下题目里的图,把每个图十字分开,就很容易发现k和k+1的关系
除了右下角全是蓝色以外,剩下都是复制
f[k][i] 表示第k个小时,前i行有多少个红球
当i在上半区(1到(1<<(k-1))行)的时候,气球是复制的k-1的状态,只需 *2即可
。。。下。。。。。。,把上半区的全加上,再加上k-1时前(i-上半区行数)行的气球
c[k]=第k个小时红色气球总数
答案输出f[k][b]-f[k][a-1]即可
#include<cstdio>#include<iostream>#include<algorithm>typedef long long LL;using namespace std;const int N=40000;int i,k,a,b;LL c[40];LL f(int k,int i){ if (i<=0)return 0; if (k==0)return 1; if (i<=(1<<(k-1)))return f(k-1,i)<<1; return c[k-1]*2+f(k-1,i-(1<<(k-1)));}int main(){ //freopen("fuck.in","r",stdin); int T;scanf("%d",&T); c[0]=1;for (int i=1;i<=31;i++)c[i]=c[i-1]*3; for (int cas=1;cas<=T;cas++){ scanf("%d%d%d",&k,&a,&b); printf("Case %d: %lld\n",cas,f(k,b)-f(k,a-1)); } return 0;}
0 0
- UVA 12627 气球胀啊胀
- UVa 12627 Erratic Expansion 奇怪的气球膨胀 (分治_递归) 白书P245
- 例题8-12 UVA - 12627 Erratic Expansion 奇怪的气球膨胀 (递归)
- uva 10934 装满水的气球
- 气球
- 动态规划(装满水的气球,uva 10934)
- UVA 10934 装满水的气球(Dropping water ballons) (DP)
- uva 10934 有k个气球 用高n层楼来测试气球硬度 求最小扔几次可以测出来
- 购买气球
- 踩气球
- 踩气球
- 树莓派探空气球
- #170. 气球
- 告白气球
- 告白气球
- 1055 气球
- 如何写浮动气球
- 气球/气泡提示
- GitHub 优秀的 Android 开源项目
- css中文字体对应英文写法
- lazyLoad懒加载技术
- java实现mysql数据库备份与还原
- Java读取二进制文件
- UVA 12627 气球胀啊胀
- 文章标题
- 学习笔记--快速乘 大法好!!!!
- 【Android】神奇的android:clipChildren属性
- 项目修炼之路(4)aop+注解的自动缓存
- 根据IP地址判断所属城市
- div样式处理。圆角样式。
- cron计划任务
- eclipse无法访问genymotion模拟器下/data/data文件解决方案