揹包問題 二維偏序, 樹狀陣列

2022-05-20 01:23:07 字數 1089 閱讀 9395

二維偏序問題,

將所 有點 按照 v

v 為第一關鍵字, w

w 為第二關鍵字從大到小排序,

從前往後掃, 離散化座標, 使用樹狀陣列維護 y

y 的字首最大值, 記為 max

_cur

max_

cur對於揹包的限制, 將揹包按容量從大到小排序, 維護乙個指標從左往右根據物品的容量往右移動, 記為 tt,

揹包從容量大的開始選顯然是最優的 .

用 min⁡(

t,ma

x_cu

r)min(t,

max_

cur)

更新 .

#include

#define reg register

intread()

while

(isdigit

(c)) s = s*

10+ c-

'0', c =

getchar()

;return s * flag;

}const

int maxn =

1e5+5;

int n;

int m;

int len_2;

int rl[maxn]

;int b2[maxn]

;struct node a[maxn]

;bool

cmp(node a, node b)

struct bit_tree

intquery

(int k)

return s;

}} bit_t;

void

work()

printf

("%d\n"

, ans);}

intmain()

飄雪聖域 樹狀陣列 二維偏序

首 先要 知道 首先要知道 首先要知道 若給定乙個區間 l,r l,r l,r 設一條邊的小端點為 u uu,大端點為 vvv,滿足條件 l u andv rl le u and v le r l uand v r 的邊數為 num numnu m,則聯通塊數量為 r l 1 n umr l 1 n...

二維偏序問題

想學cdq分治,然而cdq的經典題目是三維偏序問題,是建立在二維偏序問題的基礎上的。我這只蒟蒻連個二維偏序問題都沒做過。在網上找了一大圈,才勉強找到乙個二維偏序的題目。bzoj的許可權啊。是時候買個許可權號了。題目鏈結 這個牛客網也不知道是什麼鬼。給你n個物品,每個物品有兩個參量,分別為 s,w 讓...

poj2481(二維偏序 樹狀陣列)

農夫約翰的牛發現,他的田地裡沿著山脊生長的三葉草 我們可以將其視為一維數字線 特別好。農夫約翰有n頭母牛 我們將母牛的編號從1到n 每位農夫約翰的n頭母牛都有她特別喜歡的三葉草範圍 這些範圍可能重疊 範圍由閉合間隔 s,e 定義。但是有些母牛很強壯,有些卻很弱。給定兩個母牛 母牛i和母牛j,它們最喜...