封印一擊 Seal

2021-07-26 16:20:56 字數 1163 閱讀 5246

(seal.pas/c/cpp)

題目描述

輸入格式

第一行乙個整數 n。

接下來 n 行每行兩個整數 ai、bi,第 i+1 行表示第 i 種元素的封印區間。

輸出格式

兩個用空格隔開的整數,第乙個數是能夠獲得最多總能量的封印力度 e,第二個數是獲

得的總能量大小。當存在多個 e 能夠獲得最多總能量時,輸出最小的 e。

樣例輸入

2

5 10

20 25

樣例輸出

10 30

資料範圍與約定

對於 50% 的資料,1<=n<=1000,1<=ai<=bi<=10000。

對於 100% 的資料,1<=n<=10^5,1<=ai<=bi<=10^9。

思路想對了,沒敢寫,暴力50分,果然是做題太少了。

正解思路:

很容易想到,最優解的e肯定是某個區間的端點!

所以我們把所有區間的左右端點取出,從小到大排序,掃瞄一遍。

維護乙個變數sa,表示掃瞄到的值為p時,左端點大於p的所有區間的左端點之和;

維護乙個變數sp,表示掃瞄到的值為p時,p在左右端點之間的區間個數。那麼此時可以封印一擊得到的能量就是sa+sp*p。

#include

#include

#include

#include

using

namespace

std;

struct nodec[200010];

int a[100010],b[100010],n,i,p;

long

long sa,sp,ans;

bool cmp(const node & a,const node & b)

int main()

sort(c+1,c+2*n+1,cmp);

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

if(c[i].y==1)

Jzoj 3426 封印一擊

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...

JZOJ3426 封印一擊

接下來n行每行兩個整數ai bi,第i 1行表示第i種元素的封印區間。output 兩個用空格隔開的證書,第乙個數十能夠獲得最多總能量的封印力度e,第二個數是獲得的總能量大小。當存在多個e能夠獲得最多總能量時,輸出最小的e。sample input 5 10 20 25 sample output ...

1 5 致死一擊

kunkun最近熱愛rpg闖關遊戲,經常帶著他的舍友打各種boss。但是隨著舍友裝備的逐漸公升級,kunkun發現他給予boss最後一擊的機會越來越少 給boss最後一擊的玩家稀有裝備爆率會大幅度提公升 所以kunkun聯絡到了乙個神秘人,他可以利用時停來讓boss躲過舍友的攻擊,每次時停只能躲避一...