本文主要是介绍例题 8-12 奇怪的气球膨胀(Erratic Expansion, UVa12627),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:https://vjudge.net/problem/UVA-12627
分类:公式推理
备注:前缀和,递归
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,k,a,b;
ll f(int k,ll i){if(i==0)return 0;if(k==0)return 1;if(k==1)return i?i+1:0;if(i>=(1<<(k-1)))return 2ll*pow(3ll,k-1)+f(k-1,i-(1<<(k-1)));return 2ll*f(k-1,i);
}
int main(void){//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);scanf("%d",&t);for(int i=1;i<=t;i++){scanf("%d %d %d",&k,&a,&b);printf("Case %d: %lld\n",i,f(k,b)-f(k,a-1));}return 0;
}
这篇关于例题 8-12 奇怪的气球膨胀(Erratic Expansion, UVa12627)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!