十年OI一场空,开了long long见祖宗
查看原帖
十年OI一场空,开了long long见祖宗
101694
yummyeaten楼主2020/10/25 09:36

随机跳题跳到这道已经做过的入门题,回忆提交记录,却发现当时只知道int炸了就开long long,却不知道什么是 6464 位无符号整数。

现在回想起来,或许,就是因为这道题把我没开long long的提交放过去了,我2019年Day1T1才会被扣掉那5分。

为了避免之后的人犯和我一样的错误,我希望加入两组Hack:
输入1:

0 11451419198101919810

输出1:

1

输入2:

9 19

输出2:

10000000000000000000

实际意义:假设这个禽兽得了传染病后立即隔离,每个禽兽传染且仅传染 00 个禽兽,在 6464 位无符号整数范围内。

但是,总共有多少组Hack数据呢?

这里,我写了个程序,统计对于每一个 nnxx 的上界和下界是多少。但是由于浮点数有误差,不保证一定准确。

#include<bits/stdc++.h>
const unsigned long long Min=(1ull<<63)-1,Max=-1;
int main(){for(int x=1;x<=64;x++)printf("%d %.0f %.0f\n",x,pow(Min,1.0/x)-1,pow(Max,1.0/x)-1);}

自然,有推翻就要有重建,于是yummy写了个自认为已经足够强的代码供参考:

#include<bits/stdc++.h>
using namespace std;
unsigned long long x,n,ans=1;
int main()
{
    scanf("%llu%llu",&x,&n);
    if(n>64)
    	return puts("1")&0;
    for(int i=1;i<=n;i++)
    	ans*=x+1;
    printf("%llu",ans);
    return 0;
}
2020/10/25 09:36
加载中...