瘋魚尾的短學期第二天

2021-10-07 17:58:14 字數 1981 閱讀 3366

1.飢餓的奶牛

解題思路:

第一步:排序

按照右端點為第一關鍵字,左端點為第二關鍵字排序。

第二步:預處理陣列p

這裡是關鍵了!眾所周知,dp的各個子結構之間是不能有關聯的。我們的dp是按照區間進行dp,所以對於每乙個區間k,都要計算出p[k]=q,它滿足:

①0≤q②選擇區間k之後,區間1,2,3…q仍然可以選擇

③選擇區間k之後,區間q+1,q+2…k-1不能選擇

我們只需要快速找到乙個區間,使得該區間的右端點在k的左端點左邊即可。

這樣就可以在dp時,快速查詢在執行「選」的決策時轉移的區間。

另外這一步有乙個細節:n的規模大,在尋找區間時需要二分而不能暴力尋找,否則會t掉第三個點。

第三步:dp

方程是非常簡單的(前面的步驟全部都是為了dp)。每個區間只有兩種決策(即選與不選)。

設dp[k]為只考慮前k個區間時最多能選到多少個點。如果選k,轉移到dp[p[k]]+right[k]-left[k]+1;如果不選k,轉移到dp[k-1]。

**:

#include

#include

#define sta a

#define end c

//後來我才知道end是保留字,無奈

using

namespace std;

long

long sta[

150001

],end[

150001

],b,n,p[

150001

],dp[

150001];

bool

cmp1

(int i,

int mid1,

int mid2)

bool

cmp2

(int j,

int mid1,

int mid2)

void

sort

(int l,

int r)}if

(lsort

(l,j);if

(isort

(i,r);}

intbinarysearch

(int l,

int r,

int val)

return l;

}int

main()

for(

int i=

1;i<=b;i++

)dp[i]

=max

(dp[i-1]

,dp[p[i]

]+end[i]

-sta[i]+1

);cout<;return0;

}

總結:

首先這個**不是我寫的,我寫了將近乙個多小時還是沒有乙個很好的方法能通過測試。最後還是看了網上的解題思路。雖然沒寫出來,好好總結一樣的有收穫。

binarysearch()函式:作用是,在區間0到q之間找到最大的乙個j使得end[j]**的難點在我看來不在二分,首先是要想到用動態規劃,其實我感覺對於動態規劃學的比較好的人來說,乙個不難看出來。但是對於我這種小菜雞,還真沒看出來。。。所以到了動態規劃的章節要好好看看。

最後就是在我心裡的重頭戲了,怎麼樣按照右端點為第一關鍵字,左端點為第二關鍵字排序。反正我是不敢想的,能力限制了我的想象。。。。下面就來好好的解釋一下別人是怎麼操作的。

首先是兩個函式comp1和comp2。comp1:相當於是判斷小於。comp2:相當於是判斷大於。這個我硬看了半天沒看明白,後來自己隨便舉了乙個栗子,手動執行了一下就明白了。。。這也算是領悟到了乙個看**的方法。

然後是sort函式,其實它就是乙個就是乙個快速排序。標兵是最中間的那個元素。然後comp1是小於號,comp2是大於號。這樣一看就很好理解了。

這個串**可謂是結合了動態規劃,二分,快速排序為一體,怪不得我寫到自閉。。。。

好了,還準備一天更完所有題目的,看樣子今天只能更一題了。今天有事耽誤了一早上時間。小菜雞六級還沒過,要去學學六級了。

上班第二天

本想坐晚一班車的,誰知道這晚一班的也只是晚了 五 六分鐘,不高興再在站台上等,也只好小跑到車門上去了,果然,八點十分就到了。白天那個困啊 今天的工作內容和昨天一樣,做到後來我實在覺得測的差不多了,想幹些其他的,但這初來乍到的,也不好幹其他的呀,況且領導辦公室就在我旁邊。今天的工作總結有兩點 1 別把...

第二天實習

今天我早早到了銀行,開始給大家抹桌子,算是向愛妃學習吧。之後向wqy學習做表的方法,他很耐心。今天一天也就是做了這麼乙個表,但是還向dh學習了另外一些業務的處理,收穫不小。中午吃了雞腿 肉串和芸豆,好開心啊。我越來越喜歡自己的實習了。今天好多自己班上的同學來面試實習生,希望她們都能上!今天我沒有去同...

實習第二天

又是早起擠地鐵的一天 今天symphony說給我換了個導師,richard。於是我開始自己看,但是我並不清楚背景,不知道整個資料夾是幹什麼目的的,也不知道哪些檔案是需要看的。然後在richard的講解下,我慢慢明白了,終於知道我是幹啥的了,就是完善優化他們寫的自動化測試程式,首先是要看懂他們寫的。按...