Jzoj 3426 封印一擊

2021-09-26 07:12:34 字數 1565 閱讀 3301

nes

cafe

nescafe

nescaf

e 由 n

nn 種元素組成(編號為 1−n

1-n1−

n ),第 i

ii 種元素有乙個封印區 [ai

,bi]

[a_i,b_i]

[ai​,b

i​] 。當封印力度 e

ee 小於 a

ia_i

ai​ 時,該元素獲得 a

ia_i

ai​ 的封印能量;當封印力度 e

ee 在 a

ia_i

ai​ 到 b

ib_i

bi​ 之間時,該元素將獲得 e

ee 的封印能量;而當封印力度 e

ee 大於 b

ib_i

bi​ 時,該元素將被破壞從而不能獲得任何封印能量。現在聖主 app

lepi

applep

i 想選擇恰當的 e

ee ,使得封印獲得的總能量盡可能

高。為了封印的最後一擊盡量完美,就請你寫個程式幫他計算一下吧!

首先很容易發現,最優的數一定是區間的端點,所以只要離散後排個序,找出最優的解。

設 l ef

tleft

left

表示所有元素左端點的和,rig

ht

right

righ

t 表示所在區間的個數

所以對於當前選的數 e

ee,可以得出 ans

=lef

t+ri

ght×

eans=left+right\times e

ans=le

ft+r

ight

×e然後就是維護 lef

tleft

left

和 righ

tright

right

首先標記每個區間的左端點為 1

11,右端點為 −1-1

−1當遇到左端點時,lef

t−

left-

left

−當前點的值,即出去乙個區間,rig

ht++

right++

right+

+,即進入乙個新的區間,然後計算值

當遇到右端點時,先計算值,然後rig

ht−−

right--

right−

−,即出去乙個區間。因為在區間的右端點時,也算在當前區間,所以先計算值

#include#define n 200005

#define ll long long

using namespace std;

ll n,l,r,ans,pos;

struct a

a[n];

bool cmp(a a,a b)

int main()

sort(a+1,a+1+n+n,cmp);

for(int i=1;i<=2*n;i++)

else

}cout<}

2440 上核心3 4 2移植

win7下不能使用dnw燒寫的替代方法 兩種替代方法 u boot tftp 30000000 u boot.bin protect off all erase 0 3ffff cp.b 30000000 0 40000 kernel tftp 30000000 uimage nand erase ...

Ubuntu安裝ICE 3 4 2記錄

日期 2011 09 05 字型 大 中 小 ice 3.4.2.tar.gz 在third party source code一欄下選擇 thirdparty sources 3.4.2.tar.gz 2.安裝第三方依賴庫 解壓thirdparty sources 3.4.2.tar.gz tar...

3 4 2 引數化函式的好處

3.4.2 引數化函式的好處 我們看另乙個使用這個函式的示例,為了不同的目的,初看起來,完全不同於計算列表元素的和或積。讓我們看看,是否能找出最大值 aggregatelist max 1 4 1 5 2 8 3 val it int 8 作為第乙個引數的函式 max 是內建的 f 函式,返回給定的...