首页 > 其他分享 >P8651 [蓝桥杯 2017 省 B] 日期问题

P8651 [蓝桥杯 2017 省 B] 日期问题

时间:2024-01-20 19:12:19浏览次数:32  
标签:cout int P8651 31 30 蓝桥 date 2017 include

这道题虽然逻辑很简单,但是坑不少,一不留神就WA了

要记得去重+排序

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string>
#include <set>
#define For(i, j, n) for (int i = j; i <= n; ++i)
using namespace std;

string date;
set <string> S;
string y[3];
int days[2][14] = {{0, 31, 28, 31, 20, 31, 30, 31, 31, 30, 31, 30, 31},
                  {0, 31, 29, 31, 20, 31, 30, 31, 31, 30, 31, 30, 31}};

string is_year(int k, int w)
{
    string q = (w == 0) ? "19" : "20";
    string res;
    if (k == 0)
        res = q + y[0] + "-" + y[1] + "-" + y[2];
    else if (k == 1)
        res = q + y[2] + "-" + y[0] + "-" + y[1];
    else
        res = q + y[2] + "-" + y[1] + "-" + y[0];
    //cout << res << endl;
    return res;
}

bool check(string t)
{
    string yy = t.substr(0, 4);
    //cout << yy << " ";
    int tmp = atoi(yy.c_str()), this_year = tmp;
    if (tmp < 1960 || tmp > 2059)
    {
        //cout << "wrong year" << endl;
        return false;
    }
    yy = t.substr(5, 2);
    tmp = atoi(yy.c_str());
    int this_month = tmp;
    //cout << yy << " ";
    if (tmp < 1 || tmp > 12)
    {
        //cout << "wrong month" << endl;
        return false;
    }
    yy = t.substr(8, 2);
    tmp = atoi(yy.c_str()); // 日期
    int this_day = tmp;
    //cout << yy << endl;
    //cout << "it is " << this_year << " " << this_month << " " << this_day << endl;
    int pos = (this_year % 400 == 0) || (this_year % 4 == 0 && this_year % 100 != 0);
    //cout << "pos " << pos << " " << "limit " << days[pos][this_month] << endl;
    if (this_day <= 0 || this_day > days[pos][this_month])
    {
        //cout << "wrong day" << endl;
        return false;
    }
    return true;
}

int main()
{
    cin >> date;
    y[0] = {date[0], date[1]};
    y[1] = {date[3], date[4]};
    y[2] = {date[6], date[7]};
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 2; j++)
        {
            //cout << i << ' ' << j << endl;
            string res = is_year(i, j);
            if (check(res) && !S.count(res))
            {
                S.insert(res);
            }
        }
    for(string tmp : S)
        cout << tmp << endl;
    return 0;
}

 

标签:cout,int,P8651,31,30,蓝桥,date,2017,include
From: https://www.cnblogs.com/smartljy/p/17976783

相关文章

  • P4747 [CERC2017] Intrinsic Interval 题解
    题目链接:IntrinsicInterval讲讲析合树如何解决这种问题,其实这题很接近析合树的板题的应用。增量法进行析合树建树时,需要用ST表预处理出\(max\)和\(min\)以便\(O(1)\)查询极差,然后线段树去维护\([l,r]\)上的极差减区间端点做差即\(diff-(r-l)\),当这玩意等于\(0\)时......
  • CF1603F October 18 2017
    q-Binomial就像QB,你知道没有它会更糟,但就是不想它存在。多组询问,给定\(n,k,x\),求有多少长度为\(n\)的序列\(a\)满足\(a_i\in[0,2^k)\cap\mathbbZ\),且其中不存在非空子序列异或和为\(x\)。\(1\len\le10^9,0\lek\le10^7,\sumk\le5\times10^7,0\lex<2^{......
  • 蓝桥杯2018省赛次数差
    x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。 国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)#include<iostre......
  • P7424 [THUPC2017] 天天爱射击
    [THUPC2017]天天爱射击题目描述小C爱上了一款名字叫做《天天爱射击》的游戏。如图所示,这个游戏有一些平行于\(x\)轴的木板。现在有一些子弹,按顺序沿着\(y\)轴方向向这些木板射去。第\(i\)块木板被\(S_i\)个子弹贯穿以后,就会碎掉消失。一个子弹可以贯穿其弹道上的全部......
  • 运城学院数学与信息技术学院 2017—2018学年第二学期期末考试
    运城学院数学与信息技术学院2017—2018学年第二学期期末考试程序设计基础试题(A)适用范围:计算机科学与技术专业1701\1702班网络工程专业1703\1704\1705班信息管理与信息系统专业1706班数字媒体技术专业1707\1708班通信工程专业1709\17010班 命题人: 南丽丽       ......
  • [SDOI2017] 天才黑客
    [SDOI2017]天才黑客题目背景SD0062号选手小Q同学为了偷到SDOI7012的试题,利用高超的黑客技术潜入了SDOI出题组的内联网的中央控制系统,然而这个内联网除了配备有中央控制系统,还为内联网中的每条单向网线设定了特殊的通信口令,这里通信口令是一个字符串,不同网线的口令可能不同。这......
  • P8649 [蓝桥杯 2017 省 B] k 倍区间
    注意要把map[0]设置为1,因为根据题意,长度为1的区间也要算进来 完整代码:#include<iostream>#include<map>#defineintlonglongusingnamespacestd;map<int,int>mp;//记录每个余数出现个数的数组signedmain(){intn,k,ans=0;cin>>n>>k;......
  • BJOI 2017 解题报告
    P3713机动训练关键在于trick:\(\suma_i^2\)可以视为两个人走了相同的路径的方案数,证明是容易的:对不同的机动路径求相同的方案数,每种个数为\(a_i\)的机动路径会产生\(a_i^2\)种本质相同的走法。如果令\(dp[x][y][a][b]\)为两个人分别走到\((x,y)\)和\((a,b)\)的本......
  • 2017 考研English英语二
    46.Directions:TranslatethefollowingtextintoChinese.WriteyourtranslationneatlyontheANSWERSHEET.(15points)Mydreamhasalwaysbeentoworksomewhereinanareabetweenfashionandpublishing.Twoyearsbeforegraduatingfromsecondaryschool......
  • 2017 《Java 2实用教程(第5版)》是由耿祥义、张跃平编著
    我的研究生同学河南老乡河南工业大学Jackso_hao大学期间学习的Java教材  《Java2实用教程(第5版)》是由耿祥义、张跃平编著,2017年清华大学出版社出版的高等学校Java课程系列教材、普通高等教育“十一五”国家级规划教材。该教材既可作为高等院校相关专业Java程序设计的教材......