NC53681 土 巨石滾滾 貪心

2021-10-06 05:04:10 字數 1911 閱讀 6254

nc53681「土」巨石滾滾

題目描述

帕秋莉掌握了一種土屬性魔法

她使用這種魔法建造了乙個大型的土球,並讓其一路向下去衝撞障礙

土球有乙個穩定性x,如果x < 0,它會立刻散架

每衝撞乙個障礙,土球會喪失ai的穩定性,衝撞之後,又會從障礙身上回饋bi的穩定性

帕秋莉想知道,如果合理的安排障礙的順序,在保證土球不散架的情況下,是否可以將障礙全部撞毀呢?

輸入描述

輸入乙個整數t,代表t組資料,每組資料中:

前一行兩個整數n , m,表示障礙個數和土球的穩定性

接下來一行兩個整數,分別表示障礙的ai和bi

輸出描述

若可以,輸出「yes」(不含引號),否則輸出「no」(不含引號)

輸入樣例

15 50

49 49

52 0

5 10

26 24

70 70

輸出樣例

no思路:

這題。。。。很顯然的貪心。。但是無論我怎麼設計貪心總是有東西沒考慮到。。看了大佬的思路,大佬提供了一種考慮很周全的思路。分段貪心。對於每個a,b

a,ba,

b,我們可以求一下它的增量△

\********△xx

x。然後對增量以0

00為中點分段,我們先對增量降序,對於△

x>

0\******** x>0

△x>

0的部分我們一定可以使得m

mm變得更大,但是有可能a

>

ma>m

a>

m會使得m

mm得不到最優值,我們需要對△

x>

0\******** x>0

△x>

0這部分的a

aa公升序,對於△

x<

0\******** x<0

△x<

0,這一部分我們已經拿不到額外的利益了,為了使得m

mm最優,我們要讓a

aa盡可能的小,b

bb盡可能大,所以對於△

x<

0\******** x<0

△x<

0部分對b

bb降序就好了。

**:

#include

using

namespace std;

const

int maxn =

1e6+10;

typedef

long

long

int ll;

struct node

node

(ll a,ll b,ll c =0)

:x(a),

y(b),z

(b - a)};

node a[maxn]

;bool

cmp(node a,node b)

bool

cmp1

(node a,node b)

bool

cmp2

(node a,node b)

void

solved()

if(cnt == n)

sort

(a +

1,a +

1+ n,cmp)

;sort

(a +

1,a +

1+ cnt,cmp1)

;sort

(a +

1+ cnt,a +

1+ n,cmp2)

;for

(int i =

1; i <= n; i++)if

(m >

0)cout<<

"yes"

"no"

nc 監聽資料 linux包之nc之nc命令

nc 1.84 22.el6.x86 64 不用系統上提供的nc版本會有所不同,其提供的引數使用方法也略有差異 nc v w 1 192.168.2.10 z 1 65535 grep succeeded 埠掃瞄 1.4 強制使用ipv4 2.6 強制使用ipv6 3.d 允許socket通訊返回d...

nc命令介紹

名字 nc 連線 監聽任意的tcp和udp。概要 nc 46ddhklnrstuuvzc i 間隔 p 源埠 s 源ip位址 t 服務型別 w 超時時間 x 協議 x 位址 埠 主機名 埠 s 詳細說明 nc netcat 的功能使用是涉及到tcp或者udp的時候。它可以開啟tcp連線,傳送udp包...

nc命令說明

一,什麼是nc nc是netcat的簡寫,因為它短小精悍 功能實用,被設計為乙個簡單 可靠的網路工具 二,nc的作用 1 實現任意tcp udp埠的偵聽,nc可以作為server以tcp或udp方式偵聽指定埠 2 埠的掃瞄,nc可以作為client發起tcp或udp連線 3 機器之間傳輸檔案 4 機...