这是一个P1271的TLE代码,照理说桶排应该不会超时。
#include<bits/stdc++.h>
using namespace std;
int main(){
int b[1000],a,m,n,i;
cin >> n >> m;
for(i=0;i<m;i++){
cin>>a;
b[a]++;
}
for(i=0;i<1000;i++)
while(b[i]--) cout << i <<" ";
return 0;
}
然鹅,当把int b[1000],a,m,n,i;提前到int main()前,就可以AC了。
#include<bits/stdc++.h>
using namespace std;
int b[1000],a,m,n,i;
int main(){
cin >> n >> m;
for(i=0;i<m;i++){
cin>>a;
b[a]++;
}
for(i=0;i<1000;i++)
while(b[i]--) cout << i <<" ";
return 0;
}
求助:变量声明位置对程序及其时间有什么影响呢?