洛谷 P2010 回文日期

洛谷 \(P2010\)

传送门

大体题意

给定两个日期,然后让你求这两个日期中的日期有没有一个回文日期.

分析

首先对于\(60%\)的数据\(data1 == data2\).
我们可以直接输出1或者输出0.每一个可以得到30分的高分.

我们直接暴力枚举的话应该是不会过(我没试过).
所以我们要用一种比较玄学的方法来做.

解题思路

我们可以枚举每一个月份,然后枚举每一个月份的日期.
然后把每一个得到的日期反过来,然后再乘以\(10000\) 加上原来没有翻过来的数.
然后把得到的那个数再看看是不是在\(data1\)\(data2\) 的区间之内,
如果在那么\(ans\)就加一了鸭.

好料,此题结束.

code

#include <bits/stdc++.h>
#define N 100010
#define M 1010

using namespace std;
int yue[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int data1, data2;

int read() {
    int s = 0, f = 0;
    char ch = getchar();
    while (!isdigit(ch)) f |= (ch == '-'), ch = getchar();
    while (isdigit(ch)) s = s * 10 + (ch ^ 48), ch = getchar();
    return f ? -s : s;
}

int main() {
    int ans = 0;
    data1 = read(), data2 = read();
    for (int i = 1; i <= 12; i++) {
        for (int j = 1; j <= yue[i]; j++) {
            int day = i * 100 + j;
            day += j % 10 * 10000000;
            day += j / 10 % 10 * 1000000;
            day += i % 10 * 100000;
            day += i / 10 % 10 * 10000;
            if (data1 <= day && day <= data2) ans++;
        }
    }
    cout << ans;
}
全部评论

相关推荐

03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
牛客26538663...:感觉校园活动太多了,然后可能教育背景这种标题字号有点大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务