玲瓏OJ1088 蜜汁尺取

2021-07-26 22:54:59 字數 1499 閱讀 6754

前言(膜法):

早上10點多開始膜的,然後到中午交了一發,感覺膜法不對啊!然後就興起小窗了一發管理員,然後管理員給我發了in,out資料。。。可是太大並沒有什麼可取性。。。

還是自己試,然後發現自己搞的案例都過,後面放著不玩了,然後隊友給了我一題以前做過的dfs寫,然後寫了以後t了,後面我就跟他講這道題。。。講完好我說我的方法,他硬是不懂我的尺取,然後搞了乙個破案例我模擬發現,臥槽我左指標移的時候發現,區間突然沒有取前m最大惹,後面在左指標移的時候改了一下,gg,wa的。然後繼續測,繼續wa。然後發現噢噢噢噢,那樣子搞的!始終都要前m大,然後就這樣了,膜了一發過了。。。破水題,坑了一天,不過事後發現以後做題要對重要條件特別照顧,始終照顧。然後cf也沒打。。。萬事大吉,然後就和女朋友去散步了。

題意:先選一段連續的區間,能夠免費m個,免費是任意位置,求乙個獲得價值最大;

思路:重點就是在於怎麼搞出乙個區間的前m大,而且是始終都要。

尺取,對區間裡的數進行分類,一類是免費,一類是付錢,那我肯定是免費最貴的,因為最終我的錢多呀!

然後具體操作是兩個優先佇列搞的,乙個佇列是付錢的最大,乙個佇列是免費的最小,這樣維護複雜度還好吧。

//#include #include#include#include#include#includeusing namespace std;

typedef long long ll;

typedef pairpii;

const int n=1e5+10;

struct asd

};struct dsa

val=max(val,sum[t]-sum[s-1]);

t++;

}else break;

}//printf("%d %d\n",s,t);

//printf("%d\n",val);

if(vis[s])

else

cost-=a[s];

s++;

} printf("%d\n",val);

}return 0;}/*

100

6 1 4

5 3 2 4 1 6

2 4 3 1 6 5

5 1 6

1 2 5 4 3

2 2 5 4 8

5 2 6

1 2 5 4 3

2 2 5 4 8

6 2 4

5 3 2 4 1 6

2 4 3 1 6 5

6 2 4

1 7 1 7 1 6

2 4 3 1 6 3

6 2 4

1 7 1 7 1 6

2 4 3 1 6 3

5 2 2

1 2 5 4 3

2 2 5 4 8

5 1 1

8 5 4 3 2

1 2 3 4 5

4 1 3

4 2 2 3

3 2 4 5

*/

玲瓏OJ1088 蜜汁尺取

前言 膜法 早上10點多開始膜的,然後到中午交了一發,感覺膜法不對啊!然後就興起小窗了一發管理員,然後管理員給我發了in,out資料。可是太大並沒有什麼可取性。還是自己試,然後發現自己搞的案例都過,後面放著不玩了,然後隊友給了我一題以前做過的dfs寫,然後寫了以後t了,後面我就跟他講這道題。講完好我...

OJ 1088 滑雪 動態規劃

michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長的滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 3 4 5 16 17 ...

九度OJ 1088 剩下的樹

題目1088 剩下的樹 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 4253 解決 1907 題目描述 有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要...