二元組排序(動態規劃)(C )

2021-07-23 09:15:39 字數 689 閱讀 5435

題目:給定乙個n*2的二維陣列,看作是乙個個二元組,例如[ (a1,b1), (a2,b2), (a3,b3)],規定,如果想把二元陣列甲放在二元陣列乙上,甲中的a值必須大於乙中的a值,甲中的b值必須也得大於乙中的b值,問,給定乙個二元陣列,問可以羅成這樣的陣列幾個?

例:[ (5,4), (6,4), (6,7), (2,3)], 最多可以羅3個,如(2,3)-》(5,4)-》(6,7)

解答:#include

#include

#include

#include

#include

using namespace std;

struct cell

;bool compare(cell a,cell b)

void data_sort(vector& data,int n)}}

void dp_n(vectordata,vector& result,int n)

else

result.push_back(data[i]);}}

int main()

//sort

data_sort(data,n);

//dp-n

vectorresult;

dp_n(data,result,n);

//output

for(int i=0;icout<<"( "<}}

Playlist 二元組貪心

playlist 題意 給定長度為n的陣列a i b i 選擇至多k個元素,使得sum min b i 最大 解析 貪心 按b i 降序排列,依次裝入計算,求最大的乘積.貪心規則是每次選擇乙個已經選到的max a x 裡最小的刪去,加上乙個a i 因為是降序排列所以min b b i 遍歷貪心 ac...

uva 1471 動態維護序列二元組

本題的題意就是從長為n的串中擷取一段,把剩下的兩端拼接起來構成乙個可以夠成的最長連續上公升子串行。首先本題若直接按照題意來先列舉擷取的起點和終點在數一數就需要o n 3 時間複雜度。n為2 10 5太大。預處理就可以避免數一數 以f i 表示以i位置為開頭的連續上公升序列的長度。g i 表示以i位置...

貪心 二元組最小值最大

ccpc省賽的時候和隊友討論了多值同時貪心怎麼最優,沒整出來,今天就碰到這種題了。私以為貪心不是特別容易憑空構造出一種嚴謹 正確的貪心方案 我這種鐵牌選手只能多看多學吧,沒什麼別的方法 題目 給定n個二元組 a1,b1 a2,b2 an,bn 請你從中選出恰好k個,使得ai的最小值與bi的最小值之和...