mle???

P1255 数楼梯

xh39 @ 2019-08-09 16:32:52

```cpp #include<bits/stdc++.h> using namespace std; int a[5005][10005],size=1; void jia(int n){ //cout<<"size="<<size<<endl; int i; for(i=0;i<size;i++){ //cout<<"i(jia1)="<<i<<endl; //cout<<a[n-1][i]<<"+"<<a[n-2][i]<<endl; a[n][i]=a[n-1][i]+a[n-2][i]; } //cout<<"h329"<<endl; //for(i=0;i<size;i++){ // cout<<a[n][i]<<" "; ///} //cout<<endl; for(i=0;i<size-1;i++){ //cout<<"i(jia2)="<<i<<endl; //cout<<"i="<<i<<",a[n][i]="<<a[n][i]<<endl; if(a[n][i]>9){ a[n][i+1]++; a[n][i]-=10; } } if(a[n][size-1]>9){ a[n][size]=1; a[n][size-1]-=10; size++; } } int main(){ int n,i; cin>>n; a[1][0]=1; a[2][0]=2; for(i=3;i<=n;i++){ //cout<<"i(main)="<<i<<endl; jia(i); } for(i=size-1;i>=0;i--){ cout<<a[n][i]; } return 0; } ```

by xh39 @ 2019-08-09 16:33:52

好吧ac了


by xh39 @ 2019-08-09 16:35:18

不过我还是想问一下,为什么提交第二次就ac了?


by StudyingFather @ 2019-08-09 16:42:39

@hzdxbh139qhakj 数组没必要开这么大...


by StudyingFather @ 2019-08-09 16:43:24

第二维开到5000就够了吧。


by xh39 @ 2019-08-09 16:45:04

@StudyingFather 10000好像不会爆吧


by StudyingFather @ 2019-08-09 16:46:33

你声明的变量占用的空间其实已经超过了 128M,但只是因为实际没访问到那么多空间所以没有造成 MLE。


by xh39 @ 2019-08-09 16:53:15

@StudyingFather 好像是,可是我重新提交就通过了?


by StudyingFather @ 2019-08-09 16:56:07

@hzdxbh139qhakj 检查一下程序有没有ub?或者可能是评测机波动。


by Fraction @ 2019-08-09 16:58:44

@hzdxbh139qhakj 一般5000*5000就差不多了


|