为啥之前很有用的std::ios::sync_with_stdio(false)
到了我这里就增加了运行时间呢?
原来代码:
#include<iostream>
#include<cstdio>
typedef long long ll;
namespace xtracer{
void read(ll &n){
ll x=0,f=1;
char ch=getchar();
while(ch<'0' or ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0' and ch<='9'){
x=x*10+ch-48;
ch=getchar();
}
n=x*f;
return ;
}
void write(ll n){
if(n>10)write(n/10);
putchar(n%10+48);
}
}
#define baocai_juruo_xtracer using namespace xtracer
baocai_juruo_xtracer;
ll n,ans=0;
int main(){
read(n);
while(n){
ans+=n%2;
n/=2;
}
write(ans);
return 0;
}
Time:270ms
加了那行东西的代码:
#include<iostream>
#include<cstdio>
typedef long long ll;
namespace xtracer{
void read(ll &n){
ll x=0,f=1;
char ch=getchar();
while(ch<'0' or ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0' and ch<='9'){
x=x*10+ch-48;
ch=getchar();
}
n=x*f;
return ;
}
void write(ll n){
if(n>10)write(n/10);
putchar(n%10+48);
}
}
#define baocai_juruo_xtracer using namespace xtracer
baocai_juruo_xtracer;
ll n,ans=0;
int main(){
std::ios::sync_with_stdio(false);
read(n);
while(n){
ans+=n%2;
n/=2;
}
write(ans);
return 0;
}
Time:300ms
求助大佬,感激不尽。