bzoj 2034 2009國家集訓隊 最大收益

2022-05-20 22:20:29 字數 1124 閱讀 5084

這個題,我想的是用一些神奇的線段樹做法,根本沒想匹配

但是好像很顯然啊

(**寫的也太長了...)

給的l,r範圍很大,其實有用的只有n個時刻

那可以先離散一下

然後把 各個線段按照權值從大到小排序,乙個乙個選

有矛盾一定選擇權值大的,所以前面選定的集合一定是最優的

然後自己**裡說的check函式,看有沒有空餘的時刻,有就加上,沒有就跳過

#include #include #include #include #include #define ll long long

#define mem(a,b) memset(a,b,sizeof(a))

using namespace std;

const int n=7006;

struct son

ji[n];

bool ok_l(son a,son b)

int n;

int pos[n];// 存離散後的點

int match[n];// 第i個活躍點選的任務

bool fin(int x,int t)

int tt=match[t];

if(ji[x].r>ji[tt].r)// 貪心

return fin(x,t+1);

else

if(fin(tt,t+1))

return 0;

}int main(){

//freopen("in.in","r",stdin);

mem(match,-1);

scanf("%d",&n);

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

scanf("%d%d%d",&ji[i].l,&ji[i].r,&ji[i].v);

sort(ji+1,ji+1+n,ok_l);

pos[0]=0;

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

pos[i]=max(pos[i-1]+1,ji[i].l);

ji[1].s=1;

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

{ji[i].s=ji[i-1].s;

while( pos[ji[i].s]

23333

BZOJ 2048 2009國家集訓隊 書堆

第一行正整數 n m ou tput 一行 有換行符 l 表示水平延伸最遠的整數距離 不大於答案的最大整數 sa mple inpu t 樣例 1 i nput 1100 o utpu t 49 2 in put 2 100 ou tput 74 s ampl eout put n 10 18 資料...

字符集 國家字符集及NLS LANG執行庫

unicode編碼方案 三個實施標準 utf 8,usc 2,utf 16 oracle資料庫字符集 字符集character set 國家字符集national character set 字符集主要作用 用於儲存varchar2,char,clob,long型別資料 標示表名,列名,以及pl s...

BZOJ2144 國家集訓隊 跳跳棋

跳跳棋是在一條數軸上進行的。棋子只能擺在整點上。每個點不能擺超過乙個棋子。我們用跳跳棋來做乙個簡單的遊戲 棋盤上有3顆棋子,分別在a,b,c這三個位置。我們要通過最少的跳動把他們的位置移動成x,y,z。棋子是沒有區別的 跳動的規則很簡單,任意選一顆棋子,對一顆中軸棋子跳動。跳動後兩顆棋子距離不變。一...