思路

一开始的思路是纯暴力 , 即逐个按照年, 月, 日枚举, 但发现这样会很慢

其实只需要枚举一年中的月和日, 构造回文串 , 看看是不是在这个区间里就行了

这样最多只需要枚举366种可能

ac 代码

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
const int inf = INT_MAX;
typedef pair<int, int> pii;
typedef priority_queue<int, vector<int>, greater<int>> small_heap;
#define int long long
int32_t main()
{
    short days[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int date1, date2;
    cin >> date1 >> date2;
    int ans = 0;
    for (int m = 1; m <= 12; m++)
        for (int d = 1; d <= days[m]; d++)
        { // 构造回文年 例如 1202  构造date是 20121202
            int ye = d % 10 * 1000 + d / 10 * 100 + m % 10 * 10 + m / 10;
            int date = ye * 10000 + m * 100 + d;
            if (date1 <= date && date <= date2)
                ans++;
        }
    printf("%d\n" , ans);
    return 0;
}