递归的边界条件写的多了……不是必需写呢么多的。。

不明确可共同探讨~

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std; long long dp(int kk,int pos)
{
int n=kk;int temp=(int)pow(2,n);
// printf("%d %d\n",kk,pos);
if(kk==0&&pos==1) return 1;
if(kk==0&&pos==0) return 0;
if(kk==1&&pos==0) return 0;
if(kk==1&&pos==1) return 2;
if(kk==1&&pos==2) return 3;
// if(kk==2&&pos==0) return 0;
// if(kk==2&&pos==1) return 4;
// if(kk==2&&pos==2) return 3;
if(pos<temp/2)
return 2*dp(kk-1,pos);
if(pos==temp/2)
return 2*(long long)pow(3.0,kk-1);
if(pos>temp/2)
return 2*(long long)pow(3.0,kk-1)+dp(kk-1,pos-temp/2);
} int main()
{
int k,a,b;
int t;
int kase=0;
scanf("%d",&t);
while(t--)
{
kase++;
scanf("%d%d%d",&k,&a,&b);
long long ans1,ans2,ans;
ans1=dp(k,b);ans2=dp(k,a-1);
ans=ans1-ans2;
// printf("ans1 = %I64d ans2 = %I64d\n",ans1,ans2);
printf("Case %d: %lld\n",kase,ans);
}
return 0;
}

uva 12627 - Erratic Expansion(递归求解)的更多相关文章

  1. Uva 12627 Erratic Expansion(递归)

    这道题大体意思是利用一种递归规则生成不同的气球,问在某两行之间有多少个红气球. 我拿到这个题,一开始想的是递归求解,但在如何递归求解的思路上我的方法是错误的.在研读了例题上给出的提示后豁然开朗(顺便吐 ...

  2. UVa 12627 Erratic Expansion - 分治

    因为不好复制题目,就出给出链接吧: Vjudge传送门[here] UVa传送门[here] 请仔细看原题上的那幅图,你会发现,在时间t(t > 0),当前的气球构成的一幅图,它是由三个时间为( ...

  3. UVA 12627 - Erratic Expansion

    一个红球能够分裂为3个红球和一个蓝球. 一个蓝球能够分裂为4个蓝球. 分裂过程下图所看到的: 设当前状态为k1.下一状态为k2. k1的第x行红球个数 * 2 ⇒ k2第2*x行的红球个数. k1的第 ...

  4. UVA - 12627 Erratic Expansion 奇怪的气球膨胀 (分治)

    紫书例题p245 Piotr found a magical box in heaven. Its magic power is that if you place any red balloon i ...

  5. UVA - 12627 Erratic Expansion(奇怪的气球膨胀)(递归)

    题意:问k小时后,第A~B行一共有多少个红气球. 分析:观察图可发现,k小时后,图中最下面cur行的红气球个数满足下式: (1)当cur <= POW[k - 1]时, dfs(k, cur) ...

  6. 12627 - Erratic Expansion——[递归]

    Piotr found a magical box in heaven. Its magic power is that if you place any red balloon inside it ...

  7. UVA 12673 Erratic Expansion 奇怪的气球膨胀 (递推)

    不难发现,每过一个小时,除了右下方的气球全都是蓝色以外,其他都和上一个小时的气球是一样的,所以是可以递推的.然后定义一类似个前缀和的东西f(k,i)表示k小时之后上面i行的红气球数.预处理出k小时的红 ...

  8. UVa 12627 (递归 计数 找规律) Erratic Expansion

    直接说几个比较明显的规律吧. k个小时以后,红气球的个数为3k. 单独观察一行: 令f(r, k)为k个小时后第r行红气球的个数. 如果r为奇数,f(r, k) = f((r+1)/2, k-1) * ...

  9. C++递归求解N个元素的所有子集

    C++递归求解N个元素的所有子集 引言: 我在复习C++遇到了设计递归函数的问题.这个例子,很好的显示了设计递归的方式,思想. 这与斐波那数列不同,这个例子更有应用意义. 问题: 试编写一个递归函数, ...

随机推荐

  1. 信息传递(NOIP2015)(寻找最小环。。)

    原题传送门 这是一道寻找最小环的题目. 在做的时候给每一个点染色.. 防止再做已经搜过的点(优化) v[]表示是否访问的过,以及第一次访问该点的时间. u[]表示染色.. 这道题还可以用拓补排序做. ...

  2. QLineEdit使用总结(转)

    本文转自 https://www.cnblogs.com/hellovenus/p/5183593.html

  3. error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)(转)

    原文转自:http://blog.sina.com.cn/s/blog_639a2ad70101kpen.html 编译directshow若干问题的解决 1.安装好windows sdk,进入dir ...

  4. [译] 如何像 Python 高手一样编程?

    转自:http://www.liuhaihua.cn/archives/23475.html Harries 发布于 7天前 分类:编程技术 阅读(15) 评论(0) 最近在网上看到一篇介绍Pytho ...

  5. UVA 10205 Stack 'em Up

    直接模拟就好. #include <map> #include <set> #include <list> #include <cmath> #incl ...

  6. 不错的usb分析工具!!!---用bus hound分析usb的枚举过程【转】

    转自:http://blog.chinaunix.net/uid-25909619-id-3335199.html 说明:由于分析时是在记事本上分析的,贴到这里出现了格式有点乱,看时请复制到记事本中, ...

  7. Selenium2+python自动化9-CSS定位语法【转载】

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  8. PHP获取不带后缀的文件名方法

    $filename = "test.txt"; $houzhui = substr(strrchr($filename, '.'), 1); $result = basename( ...

  9. Wannafly挑战赛4 A解方程【二分/set/hash求解方程】

    https://www.nowcoder.com/acm/contest/35/A 题目描述 给出n个整数和x,请问这n个整数中是否存在三个数a,b,c使得ax2+bx+c=0,数字可以重复使用. 输 ...

  10. POJ1273 Drainage Ditches (网络流)

                                                             Drainage Ditches Time Limit: 1000MS   Memor ...