AcWing 466. 回文日期
考察:枚举
错误思路:
直接从a,枚举到b,如果不符合正常日期就continue
本蒟蒻TLE了,这方法可能有卡常大神能过吧...
正确思路:
构造回文日期,如果在[a,b]区间内就ans++.
注意的是0229这个时间,虽然9220属于闰年但是不要忘记考虑.
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <string> 5 using namespace std; 6 const int N = 10; 7 int month[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; 8 int main() 9 { 10 int a,b,ans= 0; 11 scanf("%d%d",&a,&b); 12 for(int i=1;i<=12;i++) 13 for(int j=1;j<=month[i];j++) 14 { 15 string s; char c; 16 int t = j+i*100; 17 int k = (i/10+i%10*10+j/10*100+j%10*1000)*10000; 18 k+=t; 19 if(k<=b&&k>=a) ans++; 20 } 21 printf("%d\n",ans); 22 return 0; 23 }