像這類日期類問題有個統一的解法,就是把原區間的問題統一到確定區間問題上去,即把問題統一到,兩個輸入日期對預定義日期的天數差的差值,預定義日期如:(2023年1月1日),這樣如題所示,樣例題目即轉為2011.04.12-0000.01.01之間的天數差與2011.04.22-0000.01.01之間的天數差的差值,這樣做有乙個巨大的好處,就是預處理,當從oj上讀入資料開始,可以再o(1)的時間內將結果算出來,而不是等讀入資料才開始運算,這樣就達到了一種以空間換時間的思想
**:
這是日期類問題的統一做法,或者說是統一思#include
using
namespace std;
#define isyear(x) x%100!=0&&x%4==0||x%400==0?1:0
//定義巨集判斷是否是閏年,方便計算每月天數
int dayofmonth[13]
[2]=
;//預存每月天數,注意二月配合巨集定義做特殊處理
struct date}}
};int buf[
5001][
13][32
];intabs
(int x)
intmain()
int d1,m1,y1;
int d2,m2,y2;
while
(scanf
("%4d%2d%2d"
,&y1,
&m1,
&d1)
!=eof
)return0;
}
問題 A 日期差值
時間限制 1 sec 記憶體限制 32 mb 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 201301055 includeint month...
問題 A 日期差值
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 201301055 include int year 2 12 int isleap int ye...
問題 A 日期差值
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。輸入 有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 輸出 每組資料輸出一行,即日期差值 include intisleapyear int year 判斷是否是閏年 intmain int t...