D_Maya Calendar

题目传送门:Maya Calendar

在这里插入图片描述
在这里插入图片描述
Sample Input

3
10. zac 0
0. pop 0
10. zac 1995
Sample Output

3
3 chuen 0
1 imix 0
9 cimi 2801
中文题面:
玛雅使用两种日历,第一种称为Haab,一年为365天,一年分为19个月,前18个月每个月都是20天,第19个月为5天,每一个月都有一个名字,分别为pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu和uayet,每个月份中的天数用0到19表示。最后一个月份中的天数用0到4表示。

玛雅使用的第二个日历称为Tzolkin,在这个日历中,一年为260天,一年分为13段,每段20天(260=13*20),每一天用一个数字和一个名字表示,总共20个名字: imix, ik, akbal, kan, chicchan, cimi, manik, lamat, muluk, ok, chuen, eb, ben, ix, mem, cib, caban, eznab, canac, ahau,数字为1到13,数字和名字都顺序循环。例如,第一年开始的几天为:1 imix, 2 ik, 3 akbal, 4 kan, 5 chicchan, 6 cimi, 7 manik, 8 lamat, 9 muluk, 10 ok, 11 chuen, 12 eb, 13 ben, 1 ix, 2 mem, 3 cib, 4 caban, 5 eznab, 6 canac, 7 ahau …

现在给你一个Haab日期,让你转换为Tzolkin日期。

题意:给了你两个日期的说明,然后给你了Haab日期,让你转换成Tzolkin日期。
思路:一道水题,比赛时候没有注意看这道,发现的时候已经晚了,而且T组输入还要输出T,(没注意这个,还wa了两发) 就是换算成从0到这个给的日期总共多少天,然后再转换下一个日期就可以了。
AC

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<math.h>
#include<bits/stdc++.h>
#include<map>
using namespace std;
#define LL long long
char s[10];
int main()
{
   char s1[50][10]={"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"};
    char s2[50][10]={"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok",  "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"};
    int t;
    scanf("%d",&t);
    printf("%d\n",t);
    while(t--)
    {
        int flog=0;
        int n,m;
        int sum=0;
        scanf("%d.%s%d",&n,s,&m);
        for(int i=0;i<=19;i++)
        {
            if(!strcmp(s1[i],s))
            {
                flog=i;
                break;
            }
        }
        sum=m*365+flog*20+n;
        printf("%d %s %d\n",sum%13+1,s2[sum%20],sum/260);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43402296/article/details/105443653
今日推荐