这题其实就是纯暴力,暴力,再暴力,毫无技巧可言(总之您怎么乱搞都不会超时QAQ)

首先,根据题意,我们明白每年自多产生一个回文日期,因为对于每年的三百多天,前四位是固定的。

所以,我们只需要进行一个从date1到date2之间的循环枚举,通过前四位找到后四位,再判断这八位数是否回文即可。

特别注意:

①:(其实题目里有讲)

一个年份是闰年当且仅当它满足下列两种情况其中的一种:

1.这个年份是4的整数倍,但不是100的整数倍;

2.这个年份是400的整数倍;

②:看到有些神犇的代码里对于“92200229”这个日期进行了特判,其实本蒟蒻感觉不需要,因为这个2月29日和9220年的条件不矛盾;

③:闰年2月有29日。

别问我这恶心的代码是怎么打出来的……

代码:

 #include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int s[],e[],sum;
bool run(int need)
{
if (need%==&&need%!=) return true;
else if (need%==) return true;
else return false;
}
int main()
{
for (int i=;i<=;i++) scanf("%1d",&s[i]);
for (int i=;i<=;i++) scanf("%1d",&e[i]);
#define __const__ s[1]*1000+s[2]*100+s[3]*10+s[4]
#define ___const___ e[1]*1000+e[2]*100+e[3]*10+e[4]
for (int i= __const__;i<=___const___;i++)
{
int cmp[]={,i/,i%/,i%/,i%,i%,i%/,i%/,i/};
if (!(cmp[]==cmp[]&&cmp[]==cmp[]&&cmp[]==cmp[]&&cmp[]==cmp[])) continue;
#define _const_ cmp[5]*10+cmp[6]
#define CONST cmp[7]*10+cmp[8]
if (_const_>||_const_<) continue;
if (CONST>||CONST<) continue;
if ((_const_==||_const_==||_const_==||_const_==||_const_==||_const_==||_const_==)&&CONST>) continue;
if ((_const_==||_const_==||_const_==||_const_==)&&(CONST>)) continue;
if ((_const_==&&CONST>&&run(cmp[]*+cmp[]*+cmp[]*+cmp[]))) continue;
if ((_const_==&&CONST>&&!run(cmp[]*+cmp[]*+cmp[]*+cmp[]))) continue;
if (i==___const___&&(_const_>e[]*+e[]||(_const_==e[]*+e[]&&CONST>e[]*+e[]))) continue;
if (i==__const__&&(_const_<s[]*+s[]||(_const_==s[]*+s[]&&CONST<s[]*+s[]))) continue;
sum++;
}
printf("%d\n",sum);
return ;
}

P2010 回文日期 题解的更多相关文章

  1. 洛谷 P2010 回文日期 题解

    P2010 回文日期 题目描述 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用88位数字表示一个日期,其中,前44位代表年份,接下来22位代表月 份,最后22位代表日 ...

  2. P2010 回文日期

    P2010 回文日期 题解 回文日期,一共8位,只需要枚举4位就好了其实,然后判断它是否合法 代码 #include<bits/stdc++.h> using namespace std; ...

  3. 洛谷 P2010 回文日期

    Noip2016普及组T2 题目描述 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期 ...

  4. #P2010 回文日期 的题解

    题目描述 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用88位数字表示一个日期,其中,前44位代表年份,接下来22位代表月 份,最后22位代表日期.显然:一个日期只有 ...

  5. P2010回文日期

    这道题是2016年普及组的题,难度等级为普及-. 这道题仍然是个模拟题.有两种策略:1.枚举回文,看日期是否存在2.枚举日期,看是否是回文.显然,前者要快很多,并且准确.本蒟蒻第一次便使用了后者,bu ...

  6. 洛谷 题解 P2010 【回文日期】

    因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...

  7. [洛谷] P2010 [NOIP2016 普及组] 回文日期

    点击查看代码 #include<bits/stdc++.h> using namespace std; int data1, data2, ans = 0, sum; int d[13] ...

  8. NOIP 普及组 2016 回文日期

    传送门 https://www.cnblogs.com/violet-acmer/p/9859003.html 题解: 思路1: 相关变量解释: year1,month1,day1 : date1对应 ...

  9. NOIP 2016 回文日期

    洛谷P2010 https://www.luogu.org/problemnew/show/P2010 JDOJ 3313 https://neooj.com:8082/oldoj/problem.p ...

随机推荐

  1. 洛谷 P5019 铺设道路

    题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...

  2. buaacoding_2018算法期末上机G题.地铁建设题解

    // 标注:本文旨在为博主确立一种题解的基本范式,以避免博主的题解流于AC代码的粘贴.此基本范式为:完整而简洁明了的思路及其推导说明,力图触及问题的本质并衍生对同类问题的思路分析,使得题解具有泛用性, ...

  3. 编码原则 之 Once and Only Once

    原文 The Once and Only Once principle can be thought of as a subset of the Don’t Repeat Yourself princ ...

  4. hadoop移除节点的优雅方式

    step 1:使用hdfs-site.xml的配置项,排除节点. <property> <name>dfs.hosts.exclude</name> <val ...

  5. poj1151 Atlantis (线段树+扫描线+离散化)

    有点难,扫描线易懂,离散化然后线段树处理有点不太好理解. 因为这里是一个区间,所有在线段树中更新时,必须是一个长度大于1的区间才是有效的,比如[l,l]这是一根线段,而不是区间了. AC代码 #inc ...

  6. 大牛的IT经验,方法【跟,帮】

    学习方法一:实践,应用,坚持. [swoole-韩天峰] 我最开始工作也是在2家小公司,后来加入腾讯阿里,主要原因还是我坚持学习基础知识,从而得到了这个机会.有几个方面的基础知识,我建议每一位PHP程 ...

  7. Python自学:第三章 确定列表长度

    >>> cars = ["bmw", "audi", "toyota", "subaru"] > ...

  8. 转载&修改:赶集mysql军规

    个人认为以下军规主要为了适应海量数据场景,对于业务复杂性系统并一定完全按照此军规   一,核心军规 不在数据库做计算,cpu计算务必移至业务层 控制单表数据量,单表记录控制在千万级 控制列数量,字段数 ...

  9. C语言缓冲区

    定义 缓冲区是内存空间的一部分,用于缓冲输入或输出的数据.根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区. 类型 缓冲区分为三种类型:全缓冲.行缓冲和不带缓冲. 1.全缓冲 在这种情况 ...

  10. ajax post json格式返回

    Ajax.aspx: Response.ContentType = "application/json"; Response.Write("{result: '" ...