zoukankan      html  css  js  c++  java
  • 牛客练习赛 A题 筱玛的快乐

    链接:https://ac.nowcoder.com/acm/contest/342/A
    来源:牛客网

    筱玛的快乐
    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 524288K,其他语言1048576K
    64bit IO Format: %lld

    题目描述

    筱玛是个快乐的男孩子。
    寒假终于到了,筱玛决定请他的朋友们一起来快乐。
    对于筱玛来说,最快乐的事情莫过于翻看万年历上的日期了。
    一个日期是“快乐”的,当且仅当这一年的年份是一个质数,且将月份、日期写成"MM-DD"的形式后是对称的。如:"2003-01-10"是“快乐”的。
    筱玛有n个小伙伴,每个小伙伴都会提出一个问题,即:从"2000-01-01"这一天开始,第k个“快乐”的日期是什么。

    输入描述:

    第一行一个整数n。
    接下来n行,每行一个数字k,表示一次询问。

    输出描述:

    输出共n行,每行一个形如"YYYY-MM-DD"的日期表示答案。
    示例1

    输入

    复制
    3
    1
    23
    48

    输出

    复制
    2003-01-10
    2027-11-11
    2063-12-21

    备注:

    1≤n≤10
    6

    保证答案存在且答案年份为4位数。

    题意:中文题面,读起来没问题吧?
    思路:寻找规律,然后预处理2000~9999的素数,然后直接输出。
    这题卡IO,,很无语,要用scanf和printf才能过,然而我用的快读。

    我的AC代码:
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <stack>
    #include <map>
    #include <set>
    #include <vector>
    #define sz(a) int(a.size())
    #define all(a) a.begin(), a.end()
    #define rep(i,x,n) for(int i=x;i<n;i++)
    #define repd(i,x,n) for(int i=x;i<=n;i++)
    #define pii pair<int,int>
    #define pll pair<long long ,long long>
    #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
    #define MS0(X) memset((X), 0, sizeof((X)))
    #define MSC0(X) memset((X), '', sizeof((X)))
    #define pb push_back
    #define mp make_pair
    #define fi first
    #define se second
    #define gg(x) getInt(&x)
    using namespace std;
    typedef long long ll;
    inline void getInt(int* p);
    const int maxn=1000010;
    const int inf=0x3f3f3f3f;
    /*** TEMPLATE CODE * * STARTS HERE ***/
    bool ispreme(int x)
    {
        for(int i=2;i<x;i++)
        {
            if(x%i==0)
            {
                return 0;
            }
        }
        return 1;
    }
    char m[50][50]={"12-21","01-10","02-20","03-30","10-01","11-11"};
    int main()
    {
    
        vector<int> v;
        repd(i,2000,9999)
        {
            if(ispreme(i))
            {
                v.pb(i);
    //            cout<<i<<" ";
            }
        }
        int t;
        gg(t);
        int k;
        while(t--)
        {
            gg(k);
            int year=v[(k-1)/6];
            k=k%6;
    //        cout<<year<<"-"<<m[k]<<endl;
            printf("%d-%s
    ",year,m[k]);
        }
        return 0;
    }
    
    inline void getInt(int* p) {
        char ch;
        do {
            ch = getchar();
        } while (ch == ' ' || ch == '
    ');
        if (ch == '-') {
            *p = -(getchar() - '0');
            while ((ch = getchar()) >= '0' && ch <= '9') {
                *p = *p * 10 - ch + '0';
            }
        }
        else {
            *p = ch - '0';
            while ((ch = getchar()) >= '0' && ch <= '9') {
                *p = *p * 10 + ch - '0';
            }
        }
    }


    本博客为本人原创,如需转载,请必须声明博客的源地址。 本人博客地址为:www.cnblogs.com/qieqiemin/ 希望所写的文章对您有帮助。
  • 相关阅读:
    二叉树的遍历详解:前、中、后、层次遍历(Python实现)
    结对编程——需求建模
    使用 python 与 sqlite3 实现简易的学生信息管理系统
    PowerShell下, MySQL备份与还原遇到的坑
    自动生成四则运算(python实现) 更新
    自动生成四则运算题目(python实现)
    软件工程导论的感想
    矩阵的秩与行列式的几何意义
    微信好友分布分析
    第一次结队作业
  • 原文地址:https://www.cnblogs.com/qieqiemin/p/10273091.html
Copyright © 2011-2022 走看看