蛤玮准备礼物

年份相差比较大 , 所以需要特殊处理一下 , 这一道题的数据量比较大 , 不优化的话 , 会超时  . 当程序写好之后 有错误 , 目前没发现 , 明天再看一下

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<limits.h>
 6 #include<algorithm>
 7 #include<queue>
 8 #include<vector>
 9 #include<set>
10 #include<stack>
11 #include<string>
12 #include<sstream>
13 #include<map>
14 #include<cctype>
15 using namespace std;
16 // 1 , 年份不同的话   计算中间的 年差 , 然后再计算 ,  不完整的年 , 的差
17 // 2 , 年份相同的话   计算 中间的日期差
18 bool is_leap_year(int n)
19 {
20     if((n%4==0&&n%100!=0)||n%400==0)
21         return true;
22     return false;
23 }
24 int main()
25 {
26     int t,year1,year2,month1,month2,day1,day2,days,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
27     scanf("%d",&t);
28     while(t--)         // 中间 是  从 1900 年 到 100万年  中间的 年数比较多
29     {
30         days=0;
31         scanf("%d%d%d%d%d%d",&year1,&month1,&day1,&year2,&month2,&day2);  // 每四百年 都 是  146097 天 .
32         if(year1!=year2)
33         {
34             int time=max(0,year2-year1-1)/400;  //  有几个四百年  ?
35             days=time*146097;   // 按照完整的 四百年来说 有这么多天
36             year1=year1+time*400;               //
37             for(int i=year1+1;i<year2;i++)
38             {
39                 if(is_leap_year(i))
40                     days+=366;
41                 else
42                     days+=365;
43             }                               //  年份不同的话 , 中间的年份已经处理完毕 .
44             if(is_leap_year(year1))
45             {
46                 for(int i=month1+1;i<=12;i++)
47                     days+=b[i];
48                 days+=b[month1]-day1+day2;
49                 for(int i=1;i<month2;i++)
50                     days+=b[i];
51             }
52             else
53             {
54                 for(int i=month1+1;i<=12;i++)
55                     days+=a[i];
56                 days+=a[month1]-day1+day2;
57                 for(int i=1;i<month2;i++)
58                     days+=b[i];
59             }                                   //   年份不同的情况处理完毕  .
60         }
61         else        //  年份相同的话
62         {
63             if(month1==month2)  //  并且 月份 相同的话
64             {
65                 days=day2-day1;
66             }
67             else            //   年份 相同 处理完毕
68             {
69                 if(is_leap_year(year1))
70                 {
71                     for(int i=month1+1;i<month2;i++)
72                         days+=b[i];
73                     days+=b[month1]-day1+day2;
74                 }
75                 else
76                 {
77                     for(int i=month1+1;i<month2;i++)
78                         days+=a[i];
79                     days+=a[month1]-day1+day2;
80                 }               //  年份不同处理完毕
81             }
82         }
83         printf("%d\n",days);
84     }
85     return 0;
86 }
时间: 2024-08-25 10:07:01

蛤玮准备礼物的相关文章

ZZULI 1876: 蛤玮的项链 Hash + 二分

Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 153  Solved: 11 SubmitStatusWeb Board Description 蛤玮向心仪的妹子送了一条项链,这条项链是由小写字母构成的首尾相接的字符串,妹子看了看项链对蛤玮说,"我希望它是对称的",蛤玮想了想之后决定,从项链上截取出一段,这段如果是回文的话那么妹子戴起来就是对称的了.由于蛤玮会魔法,他可以把项链上的某一个字母变成任意另一个字母,但由于魔力限制他最多只能变两

zzuli 1877 蛤玮打扫教室

1877: 蛤玮打扫教室 Description 现在知道一共有n个机房,算上蛤玮一共有m个队员,教练做了m个签,每个签上写着两个数L,R(L<=R),抽到的人要把[L,R]的教室全部打扫一遍.由于蛤玮是队长而且他很懒,他通过某种交易提前知道了所有m个签上面写的是什么,而且通过某种魔法可以控制自己抽到哪个签.一个教室被打扫一次就干净了,所以蛤玮想知道自己抽哪些签可以不用打扫教室而且不会被教练发现,即他抽到的区间全都会被别人打扫一遍. 蛤玮被教练叫去打扫机房,集训队有很多机房,也有很多队员,现在他

线段树区间覆盖 蛤玮打扫教室(zzuli 1877)

http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1877 Description 现在知道一共有n个机房,算上蛤玮一共有m个队员,教练做了m个签,每个签上写着两个数L,R(L<=R),抽到的人要把[L,R]的教室全部打扫一遍.由于蛤玮是队长而且他很懒,他通过某种交易提前知道了所有m个签上面写的是什么,而且通过某种魔法可以控制自己抽到哪个签.一个教室被打扫一次就干净了,所以蛤玮想知道自己抽哪些签可以不用打扫教室而且不会被教练发现,即他抽到的区间全都会

ZzuliOJ 1877 蛤玮打扫教室(线段树)

题目链接:http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1877 #include "algorithm" #include "iostream" #include "cstring" #include "cstdio" #include "string" #include "stack" #include "cmath&quo

蛤玮学计网 -- 简单的判断ip

心累 , 狗日的想了好多数据 , ......啥也不说了 我去哭一会 .  1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<limits.h> 6 #include<algorithm> 7 #include<queue> 8 #include<vector> 9 #inclu

2016郑州轻工业学院校赛 B 蛤玮的财宝

比赛时没写出来,结束后听ccx学长讲,才知道有多线程DP,感觉自己菜成dog,之前就没听过,还是太弱. #include <iostream> #include <queue> #include <cstdio> #include <cstring> #include <cstdlib> #include <stack> using namespace std; int dp[222][111][111]; int a[111][11

“玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛

1874: 蛤玮学计网 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 854  Solved: 120 SubmitStatusWeb Board Description 蛤玮最近学习了关于ip的知识,于是他迫不及待的想把新知识传授给她的妹子.蛤玮的妹子随便写下了一个字符串,蛤玮现在要告诉她这个字符串是不是一个合法的ip地址. 为简单考虑,仅考虑ipv4的情况,即合法ip为形同"a1.a2.a3.a4",且0<=ai<=25

zzuli 1875多线DP

1875: 蛤玮的财宝 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 530  Solved: 116 SubmitStatusWeb Board Description 蛤玮和他的妹子出海游玩,不小心遭遇了海难,他们醒来之后发现自己到了一座金银岛.岛主非常好心的告诉他们在岛的另一边有船可以送他们回家. 这座岛可以看成n*m的矩阵,蛤玮他们在位置(1,1),而船在位置(n,m).蛤玮发现金银岛遍地都是金子,每个格子里有价值a[i,j]的金子,他和妹

微信幼儿园投票刷礼物活动,你有被投票的经历吗?

朋友间的帮忙拉拉票就行,但是这件事要是到了自己身上就不是那么简单了,今天我姐的孩子参加幼儿园投票活动,让给拉拉票,自己投完了还要去群里发一圈好友发一遍,票数不够还要心甘情愿的买礼物,关键是下面买礼物的人还显示,不买还不行,当时心想这个一个孩子刷200元的礼物,50个孩子最起码也要上万啊,这生意绝了! 我小侄女的幼儿园人多,200个小盆友左右,平时她在班级表现的比较积成绩也比较优秀,经常得到老师的夸奖,最近圆里面搞了个最美宝贝评选大赛,活动浏览量接近100万人次,应该还不错:幼儿园说是别人给免费搞