time limit: 1 sec memory limit: 128 mb
submit: 42 solved: 25 [
submit][
status][
web board]
有個腦筋急轉彎是這樣的:有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是:因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算「淹了兩次」。舉例說明:
假定高橋和低橋的高度分別是5和2,初始水位為1
第一次洪水:水位提高到6(兩個橋都被淹),退到2(高橋不再被淹,但低橋仍然被淹)
第二次洪水:水位提高到8(高橋又被淹了),退到3。
沒錯,文字遊戲。關鍵在於「又」的含義。如果某次洪水退去之後一座橋仍然被淹,那麼下次洪水來臨水位提高時不能算「又」淹一次。
輸入n座橋的高度以及第i次洪水的漲水水位ai和退水水位bi,統計有多少座橋至少被淹了k次。初始水位為1,且每次洪水的漲水水位一定大於上次洪水的退水水位。
輸入檔案最多包含25組測試資料。每組資料第一行為三個整數n, m, k(1<=n,m,k<=105)。第二行為n個整數hi(2<=hi
<=108),即各個橋的高度。以下m行每行包含兩個整數ai和bi(1<=bi
i<=108, ai>bi-1)。輸入檔案不超過5mb。
對於每組資料,輸出至少被淹k次的橋的個數。
2 2 2
2 56 2
8 35 3 2
2 3 4 5 6
5 34 2
5 2case 1: 1case 2: 3
【題解】:
哈哈哈哈!!!!!好題解,我看了很久了。
可以的,看題目,不能正著搜
題解很妙,寫個題解,學習一下:
num[ i ] ++ 表示從第 i 個橋開始都被淹了 被淹的次數 + 1,num[ j ] - - 表示到第 j 個橋
開始都沒有被淹 因為從 i 橋開始都 +1 了 所以從在這點要把那個 1 減去
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
int h[100010];
int sum[100010];
int main()
}printf("case %d: %d\n",++ca,ans);
}return 0;
}
高橋和低橋
problem description 有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算 淹了兩次 舉例說明 假定高橋和低橋的高度分別是 5 和 2,初始水位為 1 第一...
文章標題 高橋和低橋
有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算 淹了兩次 舉例說明 假定高橋和低橋的高度分別是5和2,初始水位為1 第一次洪水 水位提高到6 兩個橋都被淹 退到2 高橋...
csu 1335 高橋和低橋
description 有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算 淹了兩次 舉例說明 假定高橋和低橋的高度分別是5和2,初始水位為1 第一次洪水 水位提高到6 兩...