hdu 2133
Posted mifankai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 2133相关的知识,希望对你有一定的参考价值。
蔡勒公式的应用
1582/10/4之后时
W=[C/4]-2C+y+[y/4]+[13*(M+1)/5]+d-1
1582/10/4之前时
w=y+[y/4]+[c/4]-2c+[13(m+1)/5]+d+2
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪减1(年份前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,
比如2003年1月1日要看作2002年的13月1日来计算)
d:日
(测试数据有点水)
#include<cstdio> #include<string> using namespace std; int year, month, day; string ans[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; bool m[] = {false, true, false, true, false, true, false, true, true, false, true, false, true}; int main() { int sum = 0; while(~scanf("%d%d%d", &year, &month, &day)) { if((year == 0 || month == 0 || day == 0) || (month==2 && day>29) || (!m[month]&&day == 31) || (!((year%4==0 && year%100!=0) || year%400==0) && month==2 && day==29) ){ puts("illegal"); continue; } if(month < 3){ year -= 1; month += 12; } int c = year/100 , y = year % 100; int w = c/4 - 2*c + y/4 + y + (26*(month+1)/10) + day -1; cout<<ans[(w%7+7)%7]<<endl; } return 0; }
以上是关于hdu 2133的主要内容,如果未能解决你的问题,请参考以下文章
单目标优化求解基于matlab蒲公英算法求解单目标优化问题含Matlab源码 2133期
HDU4057 Rescue the Rabbit(AC自动机+状压DP)