【BZOJ2056】gift? 高精度?

2056: gift? 高精度?

Time Limit: 10 Sec  Memory Limit: 1 MB
Submit: 1302  Solved: 413
[Submit][Status][Discuss]

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
【数据规模】
40% t<=1000
100% t<=100000 a,b,c,d,e,f,g,h<=60 i<=9223372036854775808

HINT

 

Source

日常被题目吸引

本来都要写高精了看到了1M内存限制 呵呵

然后我算了一下 ull极限到(2^64)-1 极限数据刚好比这个数大1

特判掉 OK

乱搞能力++

/*To The End Of The Galaxy*/
#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
");
        }
        else
        {
            tmp=1;
            ans+=(ull)i;
            rep(1,a,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,b,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,c,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,d,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,e,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,f,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,g,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            rep(1,h,1)
            {
                tmp*=(ull)2;
            }
            ans+=tmp;tmp=1;
            printf("%llu
",ans);
        }
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/redwind/p/6510542.html