程序运行时间
时间复杂度毕竟是对最坏情况的估测,还是不太准确,遇到一些在超时边缘的题目,还是得好好算一算。
比如下面的代码,稳定的运行时间比1s多一点点(当然是在我的个人电脑上,而本人的电脑配置的确有点低,所以仅供参考)
/*数据运行时间测试*/
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
char s[200005];
int main()
{
int num=0;
for(int i=1;i<=400000000;i++) num++; //4×10^8
printf("num : %d
",num);
printf("time : %lf
",(double)clock()/CLOCKS_PER_SEC);
return 0;
}
再对一道题,模拟一下评测姬。
首先是该题在评测姬上的AC情况
AC代码:
1 #include<iostream>
2 #include<cstring>
3 #include<algorithm>
4 #include<ctime>
5 using namespace std;
6
7 char s[20005];
8 int main()
9 {
10 scanf("%s",s);
11 int m=0;
12 for(int i=1;s[i];i++)
13 {
14 if(strcmp(s+m,s+i)<0) m=i;
15 }
16
17 int l=strlen(s);
18 l=l-1;
19 while(s[l]=='0'&&l>=1) l--;
20
21 for(int i=m;i<=l;i++)
22 printf("%c",s[i]);
23 printf("
");
24
25 return 0;
26 }
目测这个数据是20000个9
开始本地模拟:
建立in文件:
1 /*数据写入*/
2
3 #include<stdio.h>
4 #include<iostream>
5 #include<stdlib.h>
6 using namespace std;
7
8 char s[200005];
9 int main()
10 {
11 FILE *fp;
12 if((fp=fopen("test.in","w"))==NULL)
13 {
14 printf("File cannot be opened
");
15 exit(1);
16 }
17 /*------输入字符串-------*/
18 int i;
19 for(i=0;i<20000;i++)
20 s[i]='9';
21 s[i]='