2023年南海區甲組 拆除橋墩 remove

2022-09-07 14:18:08 字數 1312 閱讀 4471

題目描述

河的左岸到右岸之間有一座年久失修、已經廢棄的大橋,有 n 個橋墩,影響船隻通行。現在要拆除部分橋墩,使得通航能力最大,通航能力由最窄的地方決定的,這個地方有可能是岸與橋墩之間,也可以是橋墩之間。工程預算有限,只能拆除 m 個橋墩。如何安排工程,才能使得通航能力盡可能的大。

輸入第一行包含三個整數 l,n,m,分別表示左岸到右岸的距離、橋墩數和需要拆除的橋墩數。

接下來 n 行,每行乙個整數,第 i 行的整數 di(0 < di < l)表示第 i 橋墩與左岸的距離。這些橋墩按與左岸距離從小到大的順序給出。

輸出乙個整數,為拆除了 m 個橋墩之後,最窄的地方最大值。

樣例輸入

24 4 2

樣例輸出

資料範圍限制

0<=m <=n <=50000

1<=l<=1000000000

思路:二分查詢

以前寫過類似題的題解,大家點這看看,先了解一下二分。

看完後就,想想如何改動。

存位置的陣列p1在前面加上0作為左岸,l作為右岸。

要留下的橋墩=n-m+2.(+2表示左右岸);

了解後便可以對原上面這篇題解的原程式做改動。

**:

#include

using

namespace std;

int n,m,k,p1[

50005

],mod,ans,r,l=

1,a;

ints

(int o)

ans2=a1;

sum++

; a1=b1;}if

(p1[b1]

-p1[ans2]

sum--;if

(sum+

1>=n)

return1;

else

return0;

}int

main()

p1[1]

=0; p1[k]

=a; r=p1[k]

-p1[1]

;while

(l<=r)

else

}printf

("%d"

,ans)

;fclose

(stdin);

fclose

(stdout);

return0;

}

寫博不易,請發現問題的大佬提出。

**保證正確,請留讚再走。

2023年南海區甲組 撲克遊戲 poker

題目描述 有一種別樣 小貓釣魚 撲克遊戲。有 n 張牌,每張牌都有乙個花色和點數。遊戲的規則 撲克接龍時,若前面有同樣花色的牌,你可以將這兩張牌連同之間的牌都取走,得到的分值為取走牌點數之和。這裡說的是可以,不是必須。給定撲克接龍的順序,求最多的得分。輸入第一行乙個整數 n。第二行 n 個整數,依次...

2023年南海初中 取數

深度優先搜尋 一些剪枝,正解 記憶化搜尋。詳見 include include define max a,b a b?a b define file x freopen x in r stdin freopen x out w stdout using namespace std const int...

2023年總結,2023年展望

2018年已經過去13天,遲來的年度總結。仔細想想2018年,自己究竟了做了什麼?還有什麼事沒有做?這一年是否虛度?這一年自己是否又滿意?2018年,完成的事情2018年,沒做的事情 1 沒有好好沉澱下來,回顧 分析演算法題 2 沒有養成早睡早起的習慣 3 沒有鍛鍊好體魄 4 還有幾本書沒有看完 這...