[BZOJ2056]gift? 高精度?

Description

Input
输入的第一行为一个整数t。 接下来t行,每行包含九个自然数。

Output
输出t行 每行一个整数,表示\(2^a+2^b+2^c+2^d+2^e+2^f+2^g+2^h+i\)

Sample Input
1
21 30 0 0 0 0 0 0 2147483647

Sample Output
3223322629

HINT
40% t<=1000
100% t<=100000 a,b,c,d,e,f,g,h<=60 i<=9223372036854775808


高精度?1MB空间。。。呵呵,unsigned long long乱搞即可。。

注意极限数据加爆了unsigned long long,特判一下

/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
using namespace std;
typedef unsigned long long ull;
int T,i,tmp;
ull Ans,x;
int main(){
	scanf("%d",&T);
	for (;T;T--){
		Ans=0;
		for (i=1;i<=8;i++){
			scanf("%d",&tmp);
			Ans+=pow(2,tmp);
		}
		scanf("%llu",&x);
		Ans+=x;
		if (!Ans&&x)	printf("18446744073709551616\n");
		else	printf("%llu\n",Ans);
	}
	return 0;
}
posted @ 2018-11-21 10:53  Wolfycz  阅读(164)  评论(0编辑  收藏  举报