湖南省第九屆大學生計算機程式設計競賽 高橋和低橋

2021-09-30 14:04:37 字數 1947 閱讀 2720

有個腦筋急轉彎是這樣的:有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是:因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算「淹了兩次」。舉例說明:

假定高橋和低橋的高度分別是5和2,初始水位為1

第一次洪水:水位提高到6(兩個橋都被淹),退到2(高橋不再被淹,但低橋仍然被淹)

第二次洪水:水位提高到8(高橋又被淹了),退到3。

沒錯,文字遊戲。關鍵在於「又」的含義。如果某次洪水退去之後一座橋仍然被淹(即水位不小於橋的高度),那麼下次洪水來臨水位提高時不能算「又」淹一次。

輸入n座橋的高度以及第i次洪水的漲水水位ai和退水水位bi,統計有多少座橋至少被淹了k次。初始水位為1,且每次洪水的漲水水位一定大於上次洪水的退水水位。

input

輸入檔案最多包含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。

output

對於每組資料,輸出至少被淹k次的橋的個數。

sample input

2 2 2
2 5
6 2
8 3
5 3 2
2 3 4 5 6
5 3
4 2
5 2

sample output

case 1: 1
case 2: 3

hint 想法:

(精)從潮的起點往後都加一,從潮的最大漲幅往後都減一,如果橋高度在潮的起到最大這段區間,即為被淹一次,利用stl的lower_bound來進行二分

**:

#include

#include

#include

#include

using namespace std;

#define n 100010

int h[n],vis[n];

int main()

printf("case %d: %d\n",q++,sum);

}return 0;}

**二:樹狀陣列

#include #include #include using namespace std;

const int maxn = 100017;

int c[maxn], h[maxn];

int n, m, k;

int lowbit(int x)  // 2^k

void update(int i,int x)//更新i加x(1或-1)

}int sum(int x)//求x到n之間和

return sum;

}int findd(int l, int r, int t) //二分查詢 返回t最早可插入在h【】那個位置

return l;

}int main()

sort(h+1,h+n+1);

for(i = 1; i <= m; i++)

else

tl = t1-1;

int t2 = findd(1, n, b);

if(h[t2] <= b)

tr = t2;

else

tr = t2-1;

update(tl,1);

update(tr,-1);

if(i == m)//最後一次退潮後還被淹的橋的次數也要加上

}int cont = 0;

for(i = 1; i <= n; i++)//每個橋被淹次數

printf("case %d: %d\n",++cas,cont);

}return 0;

}

湖南省第九屆大學生計算機程式設計大賽題解

題目描述 我想當乙個好老師,所以我決定記住所有學生的名字。可是不久以後我就放棄了,因為學生太多了,根本記不住。但是我不能讓我的學生發現這一點,否則會很沒面子。所以每次要叫學生的名字時,我會引用離他最近的,我認得的學生。比如有10個學生 a d h 想叫每個學生時,具體的叫法是 輸入 輸入只有一組資料...

第九屆湖南省大學生程式設計競賽部分題解

前言 這套題目到處都找不到,csu上面也提交不了。最後在湖南師大oj找到了,可是這個師大oj實在是不好用,每次提交都要重新登入不說,還不支援lld,還我浪費好多時間去改wa。思路 資料量比較小,直接暴力求解即可。include include include include include incl...

湖南省第六屆大學生計算機程式設計競賽 弟弟的作業

題目傳送門 本題雖然是水題,不過很好地訓練了輸入輸出的格式,使用scanf函式進行輸入的時候,我們可以連續使用 d c d s來讀取形如 12 34 423 這樣的式子,最後的結果使用 s是因為可能出現 使用atoi函式就可以將字串轉換為整數。include include include defi...