过了5个点,别的re怎么办

P1851 好朋友

map[n]会大于18000,不可以map[map[n]]
by WhiteSunFlower @ 2020-01-31 10:09:02


n也会大于18000
by WhiteSunFlower @ 2020-01-31 10:17:34


-----华丽的分界线----- 如果输入18000那么输出=18416 17296 所以,该题的数组应开到18417以上 包括所有循环也要开到18417以上 把这几个数字改一下就好了 ```cpp #include <iostream> using namespace std; int n,map[18420]; void ys_work(){ for(int w=1;w<=18420;++w){ for(int y=w;w*y<=18420;++y){ map[w*y]+=w+y; } map[w]-=w; } map[1]=0; } int main(){ ys_work(); cin>>n; while(1){ if(map[n]<=18420) if(map[map[n]]==n&&map[n]!=n){ cout<<n<<" "<<map[n]; break; } ++n; } return 0; } ```
by WhiteSunFlower @ 2020-01-31 10:22:31


|