2019 藍橋杯省賽 B 組模擬賽 程式設計 好友

2021-09-11 22:26:16 字數 672 閱讀 5628

題目:

**如下:

#includeusing namespace std;

int a[100005];

int main()

這道題如果你用暴力每次回溯去計算次數,就算加乙個優化,還是不能通過全部資料,因為暴力的複雜度達到了o(n^2)。這道題要用到二分的思想,首先將所有漁民房子的座標從小到大排序,然後從第乙個開始尋找比自己位置 + 活動半徑d大的第乙個資料的位置。

這裡就要用到upper_bound函式了,先來簡單介紹一下,upper_bound(a,a + n,x)代表的一下從陣列a[0]到a[n]中尋找第乙個》x的數的位置(這裡陣列a一定要先排序),然後返回這個位置的位址。

那麼這裡找到比自己位置 + 活動半徑d大的第乙個資料的位置之後減去陣列初始位址(也就是a)再減去i - 1,那就是和第i個漁民是好友的個數了。從第乙個漁民一直到最後乙個,每次都把數目累計,那就是最終答案了。總體複雜度是o(nlogn)。

2019 藍橋杯省賽 B 組模擬賽(一)

d.結果填空 馬的管轄 e.填空 lis f.程式設計 找質數 思路 因為時間複雜度的問題,o n n 的時間複雜度可能會超時,可以選擇的篩選素數的方法有埃氏篩法o n logn 尤拉篩法,這裡選的是尤拉篩法o n 直接遍歷找兩個素數相加等於n 因為要求字典樹最小,所以不會超時 ac include...

2018 藍橋杯省賽 B 組模擬賽(一)

給你乙個序列,請你在其中求出一段最長嚴格上公升的部分,它不一定要連續。include includeusing namespace std int f 10000 b 10000 int lis int n res max res,f i return res 1 int main printf d...

2023年藍橋杯省賽B組c ABCD

作為籃球隊教練,你需要從以下名單中選出 1 號位至 5 號位各一名球員,組成球隊的首發陣容。每位球員擔任 1 號位至 5 號位時的評分如下表所示。請你計算首發陣容 1號位至 5 號位的評分之和最大可能是多少?瀏覽圖表可知,20位球員,5個位置,且17,18,號球員較為突出,現從中選5人,則要求各不相...