进食后人
查看原帖
进食后人
1105993
Misserina楼主2024/10/25 21:35

这道题的数据范围为 k64k \le 64,可能会爆 unsigned long long,因此如果不开 __int128 一定要加上以下特判才能过:

unsigned long long res=1;
if (k!=64) res<<=k;
else res=0; //(1ull<<64)的结果是1不是0
if (res-n==0 && k==64) printf("18446744073709551616"); 
//当res=0ull,k=64时应输出2^64,但是ull无法输出这个数,因此直接打字符串
else printf("%llu",res-n);
2024/10/25 21:35
加载中...