uva12627(分治思想)
来源:互联网 发布:淘宝御泥坊适合年龄 编辑:程序博客网 时间:2024/06/03 21:31
题意:0时刻只有一个红色的气球,每一个小时,一个红色的气球会变成三个红色的气球+一个蓝色的气球,而一个蓝色的气球会变成四个蓝色的气球。问k时刻,从A ~B行有多少个红色的气球?
思路:先仔细观察红色气球分裂的特点,分裂后右下角四分之一是全蓝,左下角四分之一是以前样子,右上角和左上角和以前一样,相当于数量是两倍,设g(i,j)表示时间i时刻,下面j行的红色球个数。
那么根据我们刚才的分析,很容易得到
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll c(int i){ return i==0 ? 1 : 3*c(i-1);}ll g(int k,int i){ if(i==0) return 0; if(k==0) return 1; int k2=(1<<(k-1)); if(i<k2) return g(k-1,i); else return 2*g(k-1,i-k2)+c(k-1);}int main(){ int t=0; int a,b,k; while(~scanf("%d%d%d",&k,&a,&b)){ printf("Case %d: %lld\n",++t,g(k,(1<<k)-a+1)-g(k,(1<<k)-b)); }}
0 0
- uva12627(分治思想)
- Uva12627 Erratic Expansion【分治】【例题8-12】
- uva12627
- Uva12627
- 常用算法思想一(分治思想)
- 归并排序(分治思想)
- 快速幂取模(分治思想)
- 归并排序(分治思想)
- 分治思想
- 分治思想
- 算法的领悟(上):分治思想
- 递归和分治思想 (上)
- 算法练习(分治法,分区思想)
- 合并排序,分治思想
- 分治思想的应用
- 分治算法思想
- 分治思想的应用
- 分治的思想
- 分治法求两点间最短距离->HDU5721
- 《Java编程思想第四版》笔记---21章(4) 并发补充:单例模式与双重检测
- 90. Subsets II
- Please verify that your device’s clock is properly set, and that your signing certificate is not exp
- 结构体struct 知识解析
- uva12627(分治思想)
- 提升效率,赶紧收藏这些ILLUSTRATOR快捷键
- 再谈jdk && eclipse
- Java任务调度框架Quartz(1)
- STM32标准库新建工程模板
- iOS --切换控制器方式 push / modal
- 最能毁掉程序员健康的几件事
- linux下的webstorm快捷键整理
- d3中图表大小自适应区域大小