acm.hdu.edu.cn/showproblem.php?pid=6112

【思路】

公式计算即可,注意特判2月29号

Zeller公式里,计算出的week不能直接模7,要保证week是正数

【AC】

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath> using namespace std; bool leap(int y)
{
if(y%==) return true;
if(y%==&&y%!=) return true;
return false;
}
int Zeller(int y,int m,int d)
{
if(m==||m==)
{
y--;
m+=;
}
int c=y/;
y-=c*;
int w=y+y/+c/-*c+*(m+)/+d-;
while(w<) w+=;
w%=;
return w;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int y,m,d;
scanf("%d-%d-%d",&y,&m,&d);
int week=Zeller(y,m,d);
while()
{
y++;
if(m==&&d==)
{
if(leap(y)&&Zeller(y,m,d)==week)
{
printf("%d\n",y);
break;
}
}
else
{
if(Zeller(y,m,d)==week)
{
printf("%d\n",y);
break;
}
}
}
}
return ;
}

Zeller

【Zeller公式计算星期几】HDU 6112 今夕何夕的更多相关文章

  1. HDU 6112 今夕何夕 蔡勒公式

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112题意:中文题目 分析:关键点在与如何计算一个日期是星期几,这个可以通过蔡勒公式来计算.基姆拉尔森计 ...

  2. HDU 6112.今夕何夕-蔡勒公式 (2017"百度之星"程序设计大赛 - 初赛(A)1005)

    1005:今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)     Probl ...

  3. HDU 6112 今夕何夕

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. Project Euler 19 Counting Sundays( 蔡勒公式计算星期数 )

    题意:在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是星期天? 蔡勒公式:计算 ( year , month , day ) 是星期几 以下图片仅供学习! /****** ...

  5. 2017"百度之星"程序设计大赛 - 初赛(A) [ hdu 6108 小C的倍数问题 ] [ hdu 6109 数据分割 ] [ hdu 6110 路径交 ] [ hdu 6112 今夕何夕 ] [ hdu 6113 度度熊的01世界 ]

    这套题体验极差. PROBLEM 1001 - 小C的倍数问题 题 OvO http://acm.hdu.edu.cn/showproblem.php?pid=6108 (2017"百度之星 ...

  6. hdu 6112 今夕何夕(模拟)

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  7. HDU 6112 今夕何夕 (预处理 枚举)

    中文题意都看的懂啦~ 思路很简单,就是通过前一天推出当天是星期几,直接枚举所有2017-9999年的每一天就好了.ㄟ( ▔, ▔ )ㄏ 代码: #include <cstdio> #def ...

  8. c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便

    —— 蔡勒(Zeller)公式 ,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月1日来计算):d:日:[ ]代表取整,即只 ...

  9. 根据日期计算星期几----蔡勒(Zeller)公式推导

    计算给定日期是星期几,好象是编程都会遇到的问题,最近论坛里也有人提到这个问题,并给出了一个公式:             W=   (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400 ...

随机推荐

  1. Suricata的Reputation

    见官网 https://suricata.readthedocs.io/en/latest/reputation/index.html Docs » 9. Reputation Edit on Git ...

  2. ping localhost 返回 ::1的导致不能打开http://localhost的原因及解决

    虽然可以在浏览器中正常访问http://localhost但用file,file_get_contents等函数打开http://localhost异常.用127.0.0.1也可以打开,本地hosts ...

  3. c++ 如何对拍

    首先要写好两个要对拍程序(假设是A,B),和一个制造数据的程序(设为made)   (要放在同一文件夹内) 编译得到A.exe , B.exe ,  made.exe 写一个对拍器 格式如下 @ech ...

  4. 由浅入深一个Demo带你认识Restful风格的架构

    java作为一门后端语言,其厉害之处在于web,大家比较熟知的各种网络应用,java都能做,那么在这个移动优先的时代,如何继续发挥java的强大之处呢? 通常是让java作为一个app的服务端,为ap ...

  5. Git之远程项目克隆到本地配置

    远程代码克隆到本地工作区,需要进行简单的配置,用于识别身份 1.git config --global user.name    [设置用户名,你的github用户名] 2.git config -- ...

  6. os模块详解2

    1.os.getenv('HOME')  读取操作系统环境变量HOME的值. 2.os.environ 返回操作系统所有的环境变量. 3.os.environ.setdefault(‘a’,‘b’) ...

  7. Java集合类工具CollectionUtils的操作方法

    集合判断: 例1: 判断集合是否为空:CollectionUtils.isEmpty(null): trueCollectionUtils.isEmpty(new ArrayList()): true ...

  8. SPOJ COT2 Count on a tree II (树上莫队,倍增算法求LCA)

    题意:给一个树图,每个点的点权(比如颜色编号),m个询问,每个询问是一个区间[a,b],图中两点之间唯一路径上有多少个不同点权(即多少种颜色).n<40000,m<100000. 思路:无 ...

  9. 51nod 1096 距离之和最小(水题日常)

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和.   Input 第1行:点的数量 ...

  10. liunx防火墙的基本操作

    centos7中的使用 CentOS 7.0默认使用的是firewall作为防火墙 查看防火墙状态------->firewall-cmd --state 停止firewall-------&g ...