• bzoj2056gift? 高精度?*


    bzoj2056gift? 高精度?

    题意:

    给出abcdefghi,求2^a+2^b+2^c+2^d+2^e+2^f+2^g+2^h+i。a~h≤60,i≤2^63

    题解:

    发现只有极限数据才会爆unsigned long long,所以先让i-1,然后把它们累加起来,发现这个数据是极限数据就手算出2^64输出字符串,否则就直接+1即可。

    注意在算2的n次幂时要1LL<<n,且unsigned long long输出要%llu。

    代码:

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define inc(i,j,k) for(int i=j;i<=k;i++)
     5 using namespace std;
     6 
     7 unsigned long long a[10]; int t;
     8 int main(){
     9     scanf("%d",&t);
    10     while(t--){
    11         inc(i,0,8)scanf("%llu",&a[i]); a[9]=0;
    12         if(a[8]==0){
    13             inc(i,0,7)a[9]+=(1LL<<a[i]); printf("%llu
    ",a[9]);
    14         }else{
    15             a[8]--; inc(i,0,7)a[9]+=(1LL<<a[i]); a[9]+=a[8];
    16             if(a[9]==18446744073709551615)printf("18446744073709551616
    ");else printf("%llu
    ",a[9]+1);
    17         }
    18     }
    19     return 0;
    20 }

    20160810

  • 相关阅读:
    Lightoj 1023
    Tju 4119. HDFS
    Lightoj 1020
    Lightoj 1019
    小奇挖矿 2(4和7)
    [AHOI2012]树屋阶梯
    漂亮字串
    Prison 监狱
    2-XOR-SAT
    牛宫
  • 原文地址:https://www.cnblogs.com/YuanZiming/p/5769466.html
Copyright © 2020-2023  润新知