最小得分和· 本題一
看資料範
圍就知道
大概是o
(nlo
gn)的
演算法,然
後很自然
就想到了
二分,但
關鍵是怎
麼判
斷本題一看資料範圍就知道大概是o(nlogn)的演算法,然後很自然就想到了二分,但關鍵是怎麼判斷
本題一看資料
範圍就知
道大概是
o(nl
ogn)
的演算法,
然後很自
然就想到
了二分,
但關鍵是
怎麼判斷
對 於需
要原來o
(n2)
的查詢,
我們很快
就想到了
o(n)
優化,具
體地,有
佇列,預
處理陣列
,堆……
的優化,
這時我們
發現,如
果我們二
分乙個最
大值我們
就可以得
到一些快
速處理了
對於需要原來o(n^2)的查詢,我們很快就想到了o(n)優化,具體地,有佇列,預處理陣列,堆……的優化,這時我們發現,如果我們二分乙個最大值我們就可以得到一些快速處理了
對於需要原來
o(n2
)的查詢
,我們很
快就想到
了o(n
)優化,
具體地,
有佇列,
預處理數
組,堆…
…的優化
,這時我
們發現,
如果我們
二分乙個
最大值我
們就可以
得到一些
快速處理了這可
惜在比賽
時我沒有
想到用隊
列,也沒
有想到二
分後怎麼
計算答案
這可惜在比賽時我沒有想到用佇列,也沒有想到二分後怎麼計算答案
這可惜在比賽
時我沒有
想到用隊
列,也沒
有想到二
分後怎麼
計算答案
1. 因為
我們二分
的是乙個
最大值滿
不滿足,
所以我們
先對原數
組排序,
一遇到差
值小於二
分的值的
時候,就
直接加進
佇列,一
遇到大於
二分的值
的時候對
首就出隊
列,這樣
就可以保
證佇列裡
的隊尾一
定可以和
佇列裡其
它元素一
一構成合
法方
案1.因為我們二分的是乙個最大值滿不滿足,所以我們先對原陣列排序,一遇到差值小於二分的值的時候,就直接加進佇列,一遇到大於二分的值的時候對首就出佇列,這樣就可以保證佇列裡的隊尾一定可以和佇列裡其它元素一一構成合法方案
1.因為我們
二分的是
乙個最大
值滿不滿
足,所以
我們先對
原陣列排
序,一遇
到差值小
於二分的
值的時候
,就直接
加進佇列
,一遇到
大於二分
的值的時
候對首就
出佇列,
這樣就可
以保證隊
列裡的隊
尾一定可
以和佇列
裡其它元
素一一構
成合法方
案
bool
check
(ll lim)
if(cnt>=k)
return
true
;return
false
;}
2.統計答案的時候,因為最大值小於等於找到的值的數可能有,可能只是個數小於k,所以我們再做一次統計就行了
#include
using
namespace std;
typedef
long
long ll;
const ll n=
1000100
;ll k,n,ansout=
0,cnt;
ll val[n]
;bool
check
(ll lim)
if(cnt>=k)
return
true
;return
false;}
intmain()
sort
(val+
1,val+n+1)
; ll l=
0,r=val[n]
-val[1]
; ll ans=r;
while
(l<=r)
if(cnt==k)
check
(ans-1)
; ansout+
=(k-cnt)
*ans;
printf
("%lld"
,ansout)
;}
798 得分最高的最小輪調
給你乙個陣列 nums,我們可以將它按乙個非負整數 k 進行輪調,這樣可以使陣列變為 nums k nums k 1 nums nums.length 1 nums 0 nums 1 nums k 1 的形式。此後,任何值小於或等於其索引的項都可以記作一分。例如,陣列為 nums 2,4,1,3,0...
四六級得分技巧備考和心態
博主四級考了一次,六級考兩次 大學之前英語沒及格過 基礎弱 線上培訓班是單詞語法再到做題全體系的課程,可以完美的補充你自己的基礎能力 報線上培訓班你的學習態度會比只交報名費的同學更努力,畢竟網課大概199左右和36元還是多了億點點。基礎好節省時間,專業的事交給專業的人,你實力雖好,但考試都是有技巧,...
最小價值和
題目描述 給定 n 個整數對 ai,bi 每個整數對的價值是 i 1 ai n i bi 下標從1開始,這裡的 ai bi 和輸入不一定對應 然後問所有整數對的最小價值總和。輸入輸入包含多組測試用例。對於每組測試用例,首先輸入數對的數量n n 1e5 接下來輸入n對數對 ai bi 0 ai,bi ...