牛客練習賽59 小松鼠吃松果 優化dp二維偏序

2021-10-10 00:01:44 字數 1272 閱讀 4464

小松鼠吃松果

非常nice

nice

nice

的一道題

首先考慮dpdp

dp容易想到按照時間來排序

然後定義dp[

i]

dp[i]

dp[i

]為考慮前i

ii個果子且吃掉第i

ii個的最大價值

那麼每次都去前面列舉乙個j

jj使得吃完j

jj還可以來吃iii

吃完j

jj還能吃i

ii有什麼條件呢??

t i−

tj

>=a

bs(p

osi−

posj

)t_i-t_j>=abs(pos_i-pos_j)

ti​−tj

​>=a

bs(p

osi​

−pos

j​)當po

si

>=p

osj,

ti−p

os

i>=t

j−po

sj

當pos_i>=pos_j,t_i-pos_i>=t_j-pos_j

當posi​

>=p

osj​

,ti​

−pos

i​>=t

j​−p

osj​

當 po

si

sj,t

i+po

si

>=t

j+po

sj

當pos_i=t_j+pos_j

當posi​

sj​,

ti​+

posi

​>=t

j​+p

osj​

用樹狀陣列維護即可

#include using namespace std;

#define int long long

const int maxn=2e5+10;

int pos[maxn],b[maxn],ls[maxn],sumn[maxn],n,m;

struct node

sort(ls+1,ls+1+n);

sort(a+1,a+1+n);

int ans=0;

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

cout << ans;

}

牛客練習賽59 A B C D

題目鏈結 a 小喬和小灰灰 題意 求給定字串中是否出現 xiaoqiao 和 xiaohuihui 思路 兩次遍歷,將 xiaoqiao 和 xiaohuihui 定義為兩個模式串,在給定字串中找到相應字元繼續往後推,看最後模式串的下標大小就知道是否為子串行了。include using names...

牛客練習賽59做題心得

題目鏈結 這道題有很多種做法,我在這裡採用的是動態規劃的方法。我們可以讓原字串和xiaoqiao,xiaohuihui。這裡是我的部落格,有興趣的朋友可以關注一下。include include include include include using namespace std const in...

牛客練習賽59 B 牛能和小鎮

題目描述 在牛國有2個小鎮編號1,2,3.n 1,n。用二維平面來表示每個小鎮的位置,第個小鎮的位置為 xi,yi 牛能做為牛國的國王,決定給小鎮之間建設一些道路,以便於任意小鎮之間都能相互到達,在第個小鎮和第個小鎮之間建設一條道路的花費是 xi xi yi xj xj yj yi yi yi 2 ...