- [USACO1.1]Friday the Thirteenth
- 2017-04-18 22:26:52 @
我把每个月的13号星期都打出来了,可是得到的每个星期的总和和样例不一样呀……
[1900] 6 2 2 5 7 3 5 1 4 6 2 4
[1901] 7 3 3 6 1 4 6 2 5 7 3 5
[1902] 1 4 4 7 2 5 7 3 6 1 4 6
[1903] 2 5 5 1 3 6 1 4 7 2 5 7
[1904] 3 6 7 3 5 1 3 6 2 4 7 2
[1905] 5 1 1 4 6 2 4 7 3 5 1 3
[1906] 6 2 2 5 7 3 5 1 4 6 2 4
[1907] 7 3 3 6 1 4 6 2 5 7 3 5
[1908] 1 4 5 1 3 6 1 4 7 2 5 7
[1909] 3 6 6 2 4 7 2 5 1 3 6 1
[1910] 4 7 7 3 5 1 3 6 2 4 7 2
[1911] 5 1 1 4 6 2 4 7 3 5 1 3
[1912] 6 2 3 6 1 4 6 2 5 7 3 5
[1913] 1 4 4 7 2 5 7 3 6 1 4 6
[1914] 2 5 5 1 3 6 1 4 7 2 5 7
[1915] 3 6 6 2 4 7 2 5 1 3 6 1
[1916] 4 7 1 4 6 2 4 7 3 5 1 3
[1917] 6 2 2 5 7 3 5 1 4 6 2 4
[1918] 7 3 3 6 1 4 6 2 5 7 3 5
[1919] 1 4 4 7 2 5 7 3 6 1 4 6周一至周日的和 34 33 35 35 34 36 33
QAQ
3 条评论
-
Silence_sky LV 8 MOD @ 2017-04-19 18:18:40
:)
-
2017-04-19 07:06:54@
过了,原来是闰年判错了……
-
2017-04-18 22:46:16@
哦,他是从周六开始输的……
可不可以帮我看看这段代码为什么最后
两个
点WA了……我的想法是记下当年每个月13日的星期,然后每次加一年的天数,然后由于闰年在2月,所以循环从2月开始,最后删掉多余的1、2月就行了。
#include <cstdio> #define num(x) ((x%4==0 && x%100!=0)?366:365) int n,day[12]={7,3,2,5,7,3,5,1,4,6,2,4},ans[8]={0,1,3,2,2,2,2,2}; int main(){ scanf("%d",&n); for (int i=1901,o=num(i); --n; i++,o=num(i)) for (int j=2,J=2; j<14; J=(++j)%12) ans[day[J]=(day[J]-1+o)%7+1]++; ans[day[0]]--,ans[day[1]]--; for (int i=6; i<13; i++) printf("%d ",ans[(i-1)%7+1]); }
- 谢谢了 OT^TO
- 1