感染 mid 字首和 二分

2021-10-03 03:41:20 字數 631 閱讀 1923

給定n

nn個數,q

qq次詢問每次乙個k

kk問至少要到第幾個數的和才大於等於kkk。

因為是求和,所以字首和處理一下,由於n

nn和q

qq都在106

10^6

106所以暴力找肯定超時(資料沒給滿導致很多人水過orz),所以考慮二分,由於字首和具有單調性,所以二分可行。

注意l on

glon

g!long\ long!

longlong!

#include

using

namespace std;

typedef

long

long ll;

const

int n =

1e6+7;

ll sum[n]

,a[n]

,n,q,k;

intmain()

while

(q--

)return0;

}

字首和 二分

powered by ab in 局外人 拿洛谷的乙個例子記一下字首和。資料超過了1e5,故o n 2 的演算法又行不通,所以換二分 include typedef long long ll using namespace std ll n,m,l,r ll a 1000001 sum 100000...

二分與字首和

時間複雜度o log n 資料區間 l mid r 實現 while l給定乙個按照公升序排列的長度為 n 的整數陣列,以及 q 個查詢。對於每個查詢,返回乙個元素 k 的起始位置和終止位置 位置從 0 開始計數 如果陣列中不存在該元素,則返回 1 1。輸入格式 第一行包含整數 n 和 q,表示陣列...

二分和字首和(藍橋)

二分 1.數的範圍 題意 給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。1 n 100010,q 10000.對於每個查詢,返回乙個元素k的起始位置和終止位置 位置從0開始計數 如果陣列中不存在該元素,則返回 1 1 思路 對於已經排好序的,且要求查詢陣列中某乙個數的位置,屬於搜尋類...