hihocoder1148https://hihocoder.com/problemset/problem/1148

因为题目没有给范围,我本来是这么写的。

  1. for(int i = ; i <= ; i++){
  2. if(i%==&&i%!=||i%==){
  3. cnt++;
  4. }
  5. memo[i] = cnt;
  6. }

然后RE了,事实证明长度还是很大的。

本题的关键在于利用计算闰年的方法巧妙地实现类似以上的计数。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cstdlib>
  6. #include<string>
  7. #include<cmath>
  8. #include<vector>
  9. #include<stack>
  10. #include<iterator>
  11. #include<queue>
  12. #include<cctype>
  13. #include<map>
  14. #define lson l, m, rt<<1
  15. #define rson m+1, r, rt<<1|1
  16. #define IO ios::sync_with_stdio(false);cin.tie(0);
  17. #define INF 0x3f3f3f3f
  18. #define MAXN 100010
  19. const int MOD=1e9+;
  20. typedef long long ll;
  21. using namespace std;
  22. int n, d1, d2, yy1, y2;
  23. char s1[], s2[];
  24. map<string, int> mp;
  25. int main()
  26. {
  27. cin >> n;
  28. int kase=, cnt=;
  29. mp["January"]=;mp["February"]=;mp["March"]=;
  30. mp["April"]=;mp["May"]=;mp["June"]=;
  31. mp["July"]=;mp["August"]=;mp["September"]=;
  32. mp["October"]=;mp["November"]=;mp["December"]=;
  33. for(int i = ; i < n; i++){
  34. cnt=;
  35. scanf("%s %d, %d", s1, &d1, &yy1);
  36. scanf("%s %d, %d", s2, &d2, &y2);
  37. if(yy1 != y2){
  38. //容斥的感觉
  39. int k1 = yy1/-yy1/+yy1/;
  40. int k2 = (y2-)/-(y2-)/+(y2-)/;
  41. cnt=k2-k1;
  42.  
  43. if(yy1%==&&yy1%!=||yy1%==){
  44. if(mp[s1] <= ){
  45. cnt++;
  46. }
  47. }
  48. if(y2%==&&y2%!=||y2%==){
  49. if(mp[s2] > ||mp[s2]==&&d2==){
  50. cnt++;
  51. }
  52. }
  53. }
  54. else{
  55. if(yy1%==&&yy1%!=||yy1%==){
  56. if((mp[s1] <= )&&(mp[s2]>||mp[s2]==&&d2==))
  57. cnt++;
  58. }
  59. }
  60. cout << "Case #" << ++kase << ": ";
  61. cout << cnt << endl;
  62. }
  63. return ;
  64. }

hihocoder1148 February 29(区间闰年计数)的更多相关文章

  1. LightOJ 1414 February 29(闰年统计+容斥原理)

    题目链接:https://vjudge.net/contest/28079#problem/R 题目大意:给你分别给你两个日期(第二个日期大于等于第一个日期),闰年的2月29日称为闰日,让你求两个日期 ...

  2. February 29(模拟)

    D - D Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status P ...

  3. $CH5302$ 金字塔 区间$DP$/计数类$DP$

    CH Sol f[l][r]表示l到r这段区间对应的金字塔结构种数 发现是f[l][r]是可以由比它小的区间推出来的 比如已知f[l+1][k],f[k+1][r],不难想到f[l][r]+=f[l+ ...

  4. [LeetCode] Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

  5. Bipartite Segments CodeForces - 901C (区间二分图计数)

    大意: 给定无向图, 无偶环, 每次询问求[l,r]区间内, 有多少子区间是二分图. 无偶环等价于奇环仙人掌森林, 可以直接tarjan求出所有环, 然后就可以预处理出每个点为右端点时的答案. 这样的 ...

  6. [LeetCode] 327. Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

  7. 327 Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

  8. Hihocoder 2月29日

      时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年 ...

  9. hihoCoder 1148 2月29日

    时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: ...

随机推荐

  1. 【bzoj4887】[Tjoi2017]可乐 矩阵乘法

    题解: 比较简单的一道题目 如果会倍增floyd这个就很显然的 每次转移看成乘上一个矩阵 另外自爆等同于连到一个特殊点,特殊点只能走自己 停留就是增加自环

  2. [转]启动tensorboard

    https://vivekcek.wordpress.com/tag/tensorboard-windows/   Visualise Computational Graphs with Tensor ...

  3. window与linux文件共享解决方案

    我的系统是windows7 x64,虚拟机上的linux系统是centos6.5 方法一: 1.在win7系统上建立一个用户 2.在f盘建立一个文件夹linuxshare,然后右击-属性-共享-高级共 ...

  4. 12px以下字体显示问题

    刚接到广告公司出的设计稿,里面很多内容均是12px以下得字体,现在来总结一下解决办法,方便以后使用 1.使用png图片 但是会影响页面响应速度 2.使用transform: scale(0.x); 注 ...

  5. 微信小程序—文件系统

    文件系统 文件系统是小程序提供的一套以小程序和用户维度隔离的存储以及一套响应的管理接口.通过wx.getFilesSystemManager()可以获取到全局唯一的文件管理器,所有文件管理操作通过Fi ...

  6. UOJ#310 【UNR #2】黎明前的巧克力 FWT 多项式

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ310.html 题目传送门 - UOJ#310 题意 给定 $n$ 个数 ,请你选出两个不相交的集合(两个 ...

  7. 006 python操作符

    一:数值操作符 1.操作符 2.不同点 上面有了一个说法,这个 / 与其他的编程不同. 这个是精确的除法. 3.连续赋值 这种用法,第一次遇见,就记录下来. 4.注意点 重要的是要注意优先级的问题 二 ...

  8. 搭建TensorFlow中碰到的一些问题(TensorBoard不是内部或外部指令也不是可运行的程序)~

    一.windows10环境+pip python软件包(最新版)+Pycharm软件(过段时间在弄下CUDA和GPU吧) 直接使用pip指令来安装tensorflow软件(如果很久没有更新pip软件包 ...

  9. 关于忘记Jenkins管理员密码的解决办法

    一.admin密码未更改情况 1.进入\Jenkins\secrets目录,打开initialAdminPassword文件,复制密码: 2.访问Jenkins页面,输入管理员admin,及刚才的密码 ...

  10. docker eureka 注册中心 服务提供者通信机制

    docker run -d --name gateway9527 -p 9527:9527  --add-host=eureka7001.com:192.168.1.15    -v /var/jen ...