科林明倫杯 B Time

2021-07-25 08:58:43 字數 1936 閱讀 7929

time limit: 1000ms  memory limit: 100000k

kim是乙個掌控時間的大師。不同於一般人,他習慣使用秒來計算時間。如果你問他現在是幾點,他會告訴你現在是今天的

***x

秒。mik

想要考考

kim。他想知道從某一天的

00:00:00

開始,經過

s秒後是哪一天。但是

mik不會計算答案,他需要你的幫助。

注意:我們認為一天從00:00:00開始,到

23:59:59

結束。00:00:00經過1

秒後是00:00:01

;從00:00:00

開始,加

86400

(60*60*24

)秒後就是下一天的

00:00:00.

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

接下來t行,每行乙個日期

yyyy-mm-dd

,接下來乙個整數s表示

s秒。對於每個輸入,輸出一行yyyy-mm-dd 表示答案。對於不足兩位的數要補齊前導0。

input

output

2016-12-10 1000

2016-02-28 86400

2016-01-01 1000000

2016-12-10

2016-02-29

2016-01-12

t<=100

s<=2147483647

日期在1800-01-01到

2100-01-01之間

閏年的判斷:

1.能被

4整除且不能被

100整除的為閏年.

2.能被

400整除的是閏年.

這道題很簡單的水題,可惜我做不對···找了很長時間的bug  也沒找出來

測試了很多資料 也都正確   ,求大神指出錯誤

wa**

#includeint a[13]= ;

int jude(int a)

int main()

for(int i=0;iyd)

}int i=0,month=0;

//printf("%d\n",day);

a[1]=28;

if(jude(y)==1)

//printf("%d**\n",a[1]);

while(day>a[i])

if(y<10)

printf("0%d-",y);

if(y>=10)

printf("%d-",y);

if(i+1<10)

printf("0%d-",i+1);

if(i+1>=10)

printf("%d-",i+1);

if(day<10)

if(day>=10)

}return 0;

}

下面直接再上一ac的 大神**

%#include #include #include #include #include #define for(i,j,k) for(int i=j;i<=k;i++)

using namespace std;

bool isleap(int y)

int maxday(int y,int m)

else

}int main (int argc, char *argv)

if (m==13)

}printf("%d-%.2d-%.2d\n",y,m,d);

}return 0;

}

直接暴力搞簡潔明瞭

當時怕超時   就把時間複雜度優化了一下

結果優化的 **複雜了,也找不出bug了

科林明倫杯哈理工第十屆同步賽部分題解

題目描述 存在n個數,每次操作可以任選乙個區間使得區間內的所有數字減一。問最少多少次操作,可以讓所有數都變成1。資料保證一定有解。輸入描述 輸入t,代表有t組資料。每組資料輸入n,代表有n個數。接下來一行輸入n個數,數字大小小於1e6。t 1000,n 1e5,n 1e6 輸出描述 每組資料輸出乙個...