前言(膜法):
早上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棵樹。現在要...