题目
1763. Gift (Standard IO)
Time Limits:
1000 ms Memory Limits: 1024 KB Detailed Limits
Description
无
Input
输入的第一行为一个整数t。
接下来t行,每行包含九个自然数。
接下来t行,每行包含九个自然数。
Output
输出t行
每行一个整数,表示2^a+2^b+2^c+2^d+2^e+2^f+2^g+2^h+i。
每行一个整数,表示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
Data Constraint
Hint
【数据规模】
40% t<=1000
100% t<=100000 a,b,c,d,e,f,g,h<=60 i<=9223372036854775808
40% t<=1000
100% t<=100000 a,b,c,d,e,f,g,h<=60 i<=9223372036854775808
分析
- unsigned long long 开不开高精都可以
代码
#include<cstdio> using namespace std; typedef long long ll; typedef unsigned long long ull; int a,b,c,d,e,f,g,h; ull ans; ull tmp; ull i; #define rep(x,y,z) for(int i=(x);i<=(y);i+=(z)) int main() { int cas; ull com=((ull)9223372036*(ull)1000000000)+(ull)854775808; scanf("%d",&cas); while(cas--) { ans=0; scanf("%d%d%d%d%d%d%d%d%llu",&a,&b,&c,&d,&e,&f,&g,&h,&i); if(a==60&&b==60&&c==60&&d==60&&e==60&&f==60&&g==60&&h==60&&i==com) printf("18446744073709551616\n"); else { tmp=1; ans+=(ull)i; for (int k=1;k<=a;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=b;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=c;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=d;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=e;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=f;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=g;k++) tmp*=(ull)2; ans+=tmp;tmp=1; for (int k=1;k<=h;k++) tmp*=(ull)2; ans+=tmp;tmp=1; printf("%llu\n",ans); } } return 0; }