wa一个点巨蠢求大佬纠错???

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int p;
long long las[300];
int len=1;
double lg2=0.3010299;

void dofor(int k){
int m=1048576;
int tim=k/20;
int lef=k%20;
int m1=1;
for(int i=1;i<=tim;i++)
{
for(int i1=1;i1<=100;i1++)
las[i1]*=m;
for(int i1=1;i1<=100;i1++){
las[i1+1]+=las[i1]/100000;
las[i1]%=100000; }
}

for(int i=1;i<=lef;i++)
m1*=2;
for(int i1=1;i1<=100;i1++)
las[i1]*=m1;
for(int i1=1;i1<=100;i1++){
las[i1+1]+=las[i1]/100000;
las[i1]%=100000; }

return ;
}

void print(){
len=int(lg2*p)+1;

printf("%d\n",len);

las[1]--;
for(int i=9;i>=0;i--)
{
for(int i1=10;i1>=1;i1--)
{
int j=i*10+i1;
if(las[j]==0)
{
printf("00000");
}
else if(las[j]<10000)
{
int a5=las[j];
int ws=0;
while(a5!=0){
a5/=10; ws+=1; }
for(int i=1;i<=5-ws;i++){
printf("0"); }
cout<<las[j];
}
else
{
cout<<las[j];
}
}
printf("\n");
}
return ;
}

int main()
{
cin>>p;
las[1]=1;
dofor(p);
print();
return 0;
}

2 条评论

  • @ 2017-09-19 23:16:56

    求大佬纠错

  • @ 2017-09-19 23:16:36

    写的挺麻烦的可是看起来就是一道码农题目
    手工的做了一下乘法压缩 O=lenPmax/20/5≈40000000
    事实上也并没有超时可是就是wa了一个点

  • 1

信息

ID
1223
难度
5
分类
数论 | 数位统计 点击显示
标签
递交数
4069
已通过
1446
通过率
36%
被复制
20
上传者