热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

URAL2048Histroy(打表+模拟)

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

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

 

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



推荐阅读
  • JZOJ 1266. 玉米田
    1266.玉米田(cowfood.pasccpp)(FileIO):input:cowfood.inoutput:cowfood.outTimeLimits:1000msMemor ... [详细]
  • 题面传送门Solution看到什么最大值最小肯定二分啊。check直接跑一个二分图匹配就好了。orzztl!!!代码实现*mail:mle ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 796.[APIO2012]派遣在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿。在这个帮派里,有一名忍者被称之为Master。 ... [详细]
  • 题目描述Takuru是一名情报强者,所以他想利用他强大的情报搜集能力来当中间商赚差价。Takuru的计划是让Hinae帮他去市场上买一个商品,然后再以另一个价格卖掉它。Takur ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • DescriptionclickmeSolution套路的状压期望DP题。。。考虑倒退期望:设fi,jrolepresentationstyleposi ... [详细]
  • 为什么即使Linux服务器的socket关闭,客户端仍能调用一次send函数?
    要弄清这个问题,首先需要知道调用send()发送数据时,发生了什么。当调用send()发送数据时,并不是直接将数据发送到网络中,而是先将待发送的数据放到socket发送缓冲区中,然 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • P113:集成日志组件 logback 2彩色日志
    第二步,将控制台的日志改成彩色日志,便于查看修改logback.xml文件。 ... [详细]
author-avatar
妹纸叫BLACK
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有