众所周知,for 循环 108 会超时。
我就一直有个问题,手写 108 行代码会超时吗?……但是不太可能。
因为,
实践是检验真理的唯一标准
所以我试了以下操作:
例如这份代码它就跑得十分慢。
#include <bits/stdc++.h>
using namespace std;
signed main()
{
int cnt=0;
for(int i=1;i<=100000000;i++)cnt++,cnt--;
return 0;
}
或者这个:
#include <bits/stdc++.h>
using namespace std;
signed main()
{
int cnt=0;
for(int i=1;i<=10000000;i++){
for(int j=1;j<=10;j++)cnt++,cnt--;
}
return 0;
}
但是把第二层 for 循环拆开,这么写:
#include <bits/stdc++.h>
using namespace std;
signed main()
{
int cnt=0;
for(int i=1;i<=10000000;i++){
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
cnt++,cnt--;
}
return 0;
}
就很快?
这是为什么……难道是进入 for 有常数吗?