UVa12674 Erratic Expansion (递归+规律)
来源:互联网 发布:洛阳中国联合网络通信 编辑:程序博客网 时间:2024/06/06 18:52
题目链接:https://vjudge.net/problem/UVA-12627
题目大意:告诉你膨胀气球的规则,让你求出第i行到第j行红气球的个数
膨胀规则如下:
我们不难发现其中存在的规律,然后递归求解就可以了
注意:数据要用long long存,注意特殊情况,在代码中有标注。熟悉递归的用法
代码:
#include<bits/stdc++.h>using namespace std;#define ll long longll solve(int k,int a,int b)//注意long long{ if(a>b) return 0; if(k==0) return 1; int l=0,r=0; if(a%2==0){ //存在一个a不是奇数行的时候,拿出来特殊计算奇数行,a++ l=a; a++; } if(b%2==1){//b同理 r=b; b--; } ll ans=solve(k-1,(a+1)/2,b/2)*2+solve(k-1,(a+1)/2,b/2); if(l) ans+=solve(k-1,l/2,l/2); if(r) ans+=solve(k-1,(r+1)/2,(r+1)/2)*2; return ans;}int main(){ int T;while(~scanf("%d",&T)){ int k,a,b; for(int i=1;i<=T;i++){ scanf("%d%d%d",&k,&a,&b); printf("Case %d: %lld\n",i,solve(k,a,b)); } }}
阅读全文
1 0
- UVa12674 Erratic Expansion (递归+规律)
- uva 12627 - Erratic Expansion 找规律,递归
- UVA12627 Erratic Expansion (递归找规律)
- UVA - 12627 - Erratic Expansion(找规律递归)
- uva12627 Erratic Expansion (递归)
- uva 12627 Erratic Expansion 递归
- (白书训练计划)UVa 12627 Erratic Expansion(递归+找规律)
- uva 12627 - Erratic Expansion(递归求解)
- UVA 12627 Erratic Expansion (递归,分治)
- UVA 12627:Erratic Expansion(递归)
- 【高效算法设计——递归】 UVa 12627 Erratic Expansion
- Uva Erratic Expansion
- UVA12627 Erratic Expansion
- 12627 - Erratic Expansion
- uva 12627 erratic expansion
- UVa 12627 - Erratic Expansion
- UVa 12627 Erratic Expansion
- Uva - 12627 - Erratic Expansion
- 数据库索引工作原理
- Android Studio MVP 构建模板
- 接口的例子代码
- 关于iOS原生条形码扫描,你需要注意的两三事
- Cannot find module 'webpack/lib/node/NodeTemplatePlugin”问题
- UVa12674 Erratic Expansion (递归+规律)
- 二叉树的恢复
- 浅析面对对象 六大原则(三)
- 大数据,从身边谈起
- 优化算法——拟牛顿法之BFGS算法
- ORACLE如何写树形内链接SQL
- VS 常用快捷键最全面整理
- 【多校】hdu 5731 Solid Dominoes Tilings 状压dp+容斥
- ffmpeg 源代码简单分析 : avcodec_register_all()