今晚非常郁闷o(╥﹏╥)o,就是这道简单的题,让我又一次TLE 所以我决定贴出我wa的代码,谨以记录!!!
超时代码如下:
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; int main() { int n,m,i,j,ans; while(~scanf("%d%d",&m,&n)) { ans=0; if(n==0&&m==0) break; int nsum=0,msum=0; for(i=0;i<=32;i++) { if(n>nsum) nsum+=pow(2,i); else break; } for(j=0;j<=32;j++) { if(m>msum) msum+=pow(2,j); else break; } int t=i-j; for(i=0;i<t;i++) { ans+=pow(2,i); m*=2; } int t2=pow(2,t); for(j=m;j<=(m+t2);j++) { if(j<=n) ans++; else break; } printf("%d\n",ans); } return 0; }end ~~