程式設計之美2015資格賽

2021-07-02 03:06:01 字數 1479 閱讀 5812

時間限制:

2000ms

單點時限:

1000ms

記憶體限制:

256mb

給定兩個日期,計算這兩個日期之間有多少個2月29日(包括起始日期)。

1. 年份能被4整除但不能被100整除

2. 年份能被400整除

第一行為乙個整數t,表示資料組數。

之後每組資料報含兩行。每一行格式為"month day, year",表示乙個日期。month為中的乙個字串。day與year為兩個數字。

資料保證給定的日期合法且第乙個日期早於或等於第二個日期。

對於每組資料輸出一行,形如"case #x: y"。x為資料組數,從1開始,y為答案。

1 ≤ t ≤ 550

小資料:

2000 ≤ year ≤ 3000

大資料:

2000 ≤ year ≤ 2×109

樣例輸入

4

january 12, 2012

march 19, 2012

august 12, 2899

august 12, 2901

august 12, 2000

august 12, 2005

february 29, 2004

february 29, 2012

樣例輸出

case #1: 1

case #2: 0

case #3: 1

case #4: 3

//注意細節就ok了

#include #include #include #include using namespace std;

int t,date1,year1,date2,year2;

char month1[50],month2[50];

char a;

int judgemonth(char month)

}else if(month[0] == 'm')

else

}bool judgeyear( int year )

int cmpdate( int m1, int d1, int m2, int d2)

else return -1;

}int main()

}else if(year1 == year2 - 1)

else

if(year1 % 400 != 0)

}while(year1 + 400 <= year2)

if(year1 <= year2 && judgeyear(year1)) ans++;

while(year1 + 100 <= year2)

while(year1 + 4 <= year2)}}

printf("case #%d: %d\n",item, ans);

}return 0;

}

程式設計之美資格賽

時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 給定2個樹a和b,保證a的節點個數 b的節點個數。現在你需要對樹a的邊進行二染色。乙個好的染色方案,指不存在乙個樹a中的連通塊,同時滿足以下2個條件 1.其中只有同色的邊 2.和b同構。兩個樹同構是指,存在乙個一一對映 既是單射...

2015程式設計之美(資格賽) 基站選址

時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 第一行為乙個整數t,表示資料組數。每組資料第一行為四個整數 n,m,a,b。接下來的a b行每行兩個整數x,y,代表乙個座標,前a行表示各使用者的座標,後b行表示各通訊公司的座標。對於每組資料輸出一行 case x y x代表資...

基站選址(程式設計之美2015資格賽)

時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 第一行為乙個整數t,表示資料組數。每組資料第一行為四個整數 n,m,a,b。接下來的a b行每行兩個整數x,y,代表乙個座標,前a行表示各使用者的座標,後b行表示各通訊公司的座標。對於每組資料輸出一行 case x y x代表資...