UVA12627 Erratic Expansion
来源:互联网 发布:cg软件 编辑:程序博客网 时间:2024/05/18 02:38
开始想利用二叉树去计算每一行的值。。妥妥的T了。。。于是看了题解。。。居然是DP。,果然菜的不行。。。
f(i,j)表示第i天前j行的红色气球的数量和c(i)表示第i天红色气球的总数量,显然c(i)=3^i。那么当j>=2^(i-1)的时候,f(i,j)=f(i-1,j-2^(i-1))+2*c(i-1),当j<2^(i-1)时,f(i,j)=2*f(i-1,j)。
AC代码如下。。
#include <cstdio>using namespace std;typedef unsigned long long ll;ll quick_pow(int a,int b){ ll ans=1,base=a; while(b) { if(b&1) ans*=base; b>>=1; base*=base; } return ans;}ll f(int k,int a){ if(k==0) return a==0? 0:1; if(a<=(1<<(k-1))) return 2*f(k-1,a); else return f(k-1,a-(1<<(k-1)))+2*quick_pow(3,k-1);}int main(int argc, char const *argv[]){ int T,a,b,k,cnt=0; scanf("%d", &T); while(T--) { cnt++; scanf("%d %d %d", &k, &a, &b); printf("Case %d: %lld\n", cnt, f(k,b)-f(k,a-1)); } return 0;}
0 0
- UVA12627 Erratic Expansion
- uva12627 erratic expansion
- UVA12627 Erratic Expansion
- uva12627 Erratic Expansion
- uva12627 Erratic Expansion (递归)
- UVA12627 Erratic Expansion (递归找规律)
- UVA12627:Erratic Expansion(奇怪的气球膨胀)
- Uva12627 Erratic Expansion【分治】【例题8-12】
- uva12627 - Erratic Expansion 入门经典II 第八章 例题8-12
- 算法竞赛入门经典 例题8-12 奇怪的气球膨胀 Erratic Expansion uva12627
- 例题8-12 奇怪的气球膨胀(Erratic Expansion, UVa12627)
- Uva Erratic Expansion
- 12627 - Erratic Expansion
- uva 12627 erratic expansion
- UVa 12627 - Erratic Expansion
- UVa 12627 Erratic Expansion
- Uva - 12627 - Erratic Expansion
- UVA 12627 - Erratic Expansion
- Mysql_学习记录
- 关于(function(){})()
- Android Studio中利用JavaDoc生成项目API文档
- java学习之路 之 IO流
- 威佐夫博弈基础2
- UVA12627 Erratic Expansion
- 【lightoj1331】Agent J【计算几何】
- 多态
- 白底黑字!Android浅色状态栏黑色字体模式
- Android集成高德地图
- JavaBean
- 复习统计(2)-统计量的抽样分布
- 常用快捷键 特别是格式化代码ctrl+i
- android开发,修改状态栏字体颜色?