博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URAL 2048 Histroy(打表+模拟)
阅读量:6292 次
发布时间:2019-06-22

本文共 1933 字,大约阅读时间需要 6 分钟。

因为年历是400年一个循环节的,所以递推出一年的情况,然后递推处理出一个循环节的情况。对于询问,求一个类似前缀和的东西就好了。

跑出来和比样例小一,把A和B加一以后交后AC...

写得时候注意变量的定义。。。不然WA到哭。。。我是以6代表星期5的,1900年是第一年,所以B,A减去1900之前要加一。

#include
#include
bool isLeapYear(int y){ if(y%100){ return !(y&3); } else { return !(y%400); }} // 1 3 5 7 8 10 12int days[] = {-1,31,28,31,30,31,30,31,31,30,31,30,31};//6 7 1 2 3 4 5int cnt1[7];//1~2月int cnt2[7];//2月以后int cnt[7];//1900void firstYear(){ int v = 0; for(int m = 1; m <= 2; m++) { cnt1[v]++; v = (v+days[m])%7; } for(int m = 3; m <= 12; m++) { cnt2[v]++; v = (v+days[m])%7; } for(int i = 0; i < 7; i++) { cnt[i] = cnt1[i]+cnt2[i]; }}int cnt400[401][13];int cntCur[7];void circle(){ firstYear(); int mov = 0; int i = 1;//1900 for(int y = 1900; y < 2300; y++,i++){
//1,1 +mov1 1,2 2->last 1 memset(cntCur,0,sizeof(cntCur)); if(isLeapYear(y)) { for(int i = 0; i < 7; i++)//2月以前不受影响 cntCur[i] += cnt1[(i-mov+7)%7]; mov = (mov + 1)%7;//相对上一年 for(int i = 0; i < 7; i++) cntCur[i] += cnt2[(i-mov+7)%7]; } else { for(int i = 0; i < 7; i++) cntCur[i] += cnt[(i-mov+7)%7]; } mov = (mov + 1)%7;//365%7 =1 for(int j = 0; j < 13; j++){ cnt400[i][j] = cnt400[i-1][j]; } cnt400[i][cntCur[6]]++; }}int ans[13];//#define localint main(){#ifdef local freopen("data.txt","w",stdout);#endif // local int A,B; circle(); scanf("%d%d",&A,&B); B++;A++; int a = (A-1-1900)%400; int na = (A-1-1900)/400; int b = (B-1900)%400; int nb = (B-1900)/400; for(int i = 0; i < 13; i++){ ans[i] += (nb-na)*cnt400[400][i] + cnt400[b][i] - cnt400[a][i]; } for(int i = 0; i < 13; i++) printf("%d: %d\n",i,ans[i]); return 0;}

 

转载于:https://www.cnblogs.com/jerryRey/p/4719747.html

你可能感兴趣的文章
PKU 2068 Nim
查看>>
测试基础-1.1
查看>>
15、响应式布局和BootStrap 全局CSS样式知识点总结-part2
查看>>
【MySQL】通过Binary Log简单实现数据回滚(一)
查看>>
255.Spring Boot+Spring Security:使用md5加密
查看>>
记录一款SQLite数据库管理软件
查看>>
将Oracle的语言从中文修改为英文
查看>>
matlab编译错误代码中英对照
查看>>
Python 元组
查看>>
hbase(ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet)
查看>>
[ZJOI2010]count 数字计数
查看>>
多校4 1001 Olympiad
查看>>
hdu1085 Holding Bin-Laden Captive!
查看>>
hdu4811 Ball
查看>>
Docker实践--搭建Yapi测试平台
查看>>
align-content 与 align-items 区别
查看>>
a链接中,name属性的应用
查看>>
Java精选笔记_多线程(创建、生命周期及状态转换、调度、同步、通信)
查看>>
java Session统计在线用户,并且显示在线用户
查看>>
spring boot集成jpa(mysql)
查看>>