递归找规律即可,用前b行减去前a-1行的红气球个数求解,细节见代码

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<iostream>
#include<sstream>
#include<iterator>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<deque>
#include<queue>
#include<list>
typedef long long ll;
typedef unsigned long long llu;
const int MAXN = 100 + 10;
const int MAXT = 10000 + 10;
const int INF = 0x7f7f7f7f;
const double pi = acos(-1.0);
const double eps = 1e-6;
using namespace std;int k, a, b;
llu ans, c[40];//c存的是经过几次膨胀后所得的红气球总数
//每次膨胀过后,红气球总数*3
void init(){c[0] = 1;for(int i = 1; i < 40; ++i)  c[i] = c[i - 1] * 3;
}llu dfs(int depth, int t){if(t <= 0)  return 0;          //如果层数小于等于0则不存在红气球if(depth == 0)  return 1;      //如果膨胀0次则只有一个红气球llu tmp = 1 << (depth - 1);    //若膨胀depth-1次,tmp为行或列的大小if(t >= tmp)  return dfs(depth - 1, t - tmp) + 2 * c[depth - 1];//若现在所处行超过了tmp,则把四个depth-1中的顶上两个取出//然后加剩余一个的前t-tmp行else  return 2 * dfs(depth - 1, t);//否则,就取四个depth-1上的顶上两个的前t行即可
}int main(){init();int T;scanf("%d", &T);for(int ca = 1; ca <= T; ++ca){scanf("%d%d%d", &k, &a, &b);ans = dfs(k, b) - dfs(k, a - 1);   //答案为膨胀k次前b行的个数 - 膨胀k次前a-1行的个数printf("Case %d: %llu\n", ca, ans);}return 0;
}

UVA - 12627 - Erratic Expansion(找规律递归)相关推荐

  1. Uva 12627 Erratic Expansion(不稳定膨胀)

    题目链接 : Erratic Expansion 大致题意: 开始时有一个红气球,每过一段时间,气球会膨胀, 一个红气球膨胀成三个红气球,一个蓝气球膨胀成四个蓝气球(如图) 题目输入正整数n表示n组数 ...

  2. UVA - 12627 Erratic Expansion : 递归

    题目点此跳转 思路  题目意思是(书上原话)一开始有一个红气球.每小时后,一个红气球会变成3个红气球和一个蓝气球,一个蓝气球会变成4个蓝气球,如图所示分别是经过0, 1, 2, 3小时后的情况.经过k ...

  3. UVA 12627 Erratic Expansion

    题目大致意思为 告诉你一个红球为0时状态,已知一个红球每过一个时间会变为文档所示图中的3红1蓝,而蓝球每过一个时间则会变为4个蓝球.问在某一时刻,h1与h2之间的红球有几个. RT,这一题刚看到的时候 ...

  4. UVa 12627 Erratic Expansion - 分治

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

  5. UVa 12627 - Erratic Expansion

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. Uva 12627 Erratic Expansion

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

  7. uva 12627 Erratic Expansion

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

  8. uva 12627——Erratic Expansion

    题意:一开始有1个红气球,每小时一个红气球都会变成3个红气球和1个蓝气球,1个蓝气球会变成4个蓝气球,问k个小时后a行到b行的红气球的数量. 思路:递推.a为偶数时,计算a+1到b以及a本行的红气球数 ...

  9. Uva - 12627 - Erratic Expansion

    找到递推公式,题目就引刃而解了.数学公式博文没办法写,就写在了word上,切过来了: 用 f 或者 g 都能求出,我两个方法都试了,结果用 g 要比 f 快了近一倍,原本以为 f 会快些,可能是因为往 ...

最新文章

  1. python基础实验报告答案_Python基础(上)实验报告
  2. [转载]VC6下安装STLport-5.2.1
  3. 使用Hystrix守护应用(3)
  4. 机器学习导论(张志华):EM收敛性原理
  5. java se 导原码_Java SE 8新功能导览:Java开发世界中的重大变化
  6. 吴恩达机器学习之逻辑回归理论部分
  7. 使用Python批量下载数据
  8. 3.2. 开始入住实验
  9. python识别图片文字、并返回文字坐标_简易OCR图片文字识别工具的进一步改进(增加显示图片的功能)...
  10. APP测试点总结(表格形式)
  11. postman安装报错 无法定位_接口测试工具postman安装及使用
  12. linux格式化u盘保护,linux系统怎么避免u盘被写保护
  13. pdf文件转换成word文本文档去水印怎么弄
  14. HTTP代理是什么意思?
  15. 实验吧 天网管理系统writeup
  16. 长尾关键词排名优化技巧
  17. Android 程序框架设计
  18. 模拟计算机打字,JS实现电脑虚拟键盘打字测试
  19. 【LeetCode 单链表专项】反转链表II(92)
  20. display常用属性值

热门文章

  1. 机械臂操作运动传送带上的物体
  2. linux不同用户环境变量问题
  3. Chapter21: Consideration in the Application of Artificial Intelligence to Pharmacokinetic Prediction
  4. html5 堆叠柱状,Highcharts 堆叠柱形图
  5. 从阅文合同风波,看IP源头与网文产业的下一站
  6. java合法标识符_JAVA合法标识符
  7. 三十四、Fluent液体喷雾蒸发模拟
  8. 导向滤波快速导向滤波及引导图的选择
  9. 【转】python获取计算股票技术指标DIF/DEA/MACD
  10. 海外邮件经常退信怎么办啊?