bzoj 5040 未來研究

2021-08-13 14:52:57 字數 2283 閱讀 6523

這題相比起歷史研究,有乙個十分重要的條件

ai

<=bj

這句話什麼意思呢?

就是說,任意兩個操作,只有相離和內含兩個關係

這啟示我們,如果我們把最近乙個包含關係連邊的話,他是一棵樹

比如說,三個詢問(1,3)(1,2)(1,1)

我們可以這麼連邊(1,3)->(1,2)->(1,1)

這樣的話就是一棵樹了,是吧

然後我們就是在樹上面考慮這個問題

其實就是樹上每個點有個l,r

然後問我們這一段怎麼搞

當然他有很多孩子

這種問題,很明顯,是可以將孩子並到父親那裡去的

那怎麼搞呢?

dsu on tree!

時間複雜度和做法在上面都有了,我就不再贅述了

於是,就可以在nl

ogn 的複雜度裡面優秀地解決這個題了!

至於怎麼建樹,一開始想的是按長度排序,然後用乙個線段樹維護這個區間要連向誰

但後來採取了乙個單調棧的方法

就是,我們按l為第一關鍵字,r為第二關鍵字,第乙個公升序,第二個降序

然後搞一搞就好了。。具體看**。。

當然,其實如果你寫線段樹合併的話,我不知道可不可以啊。。反正沒有dsu on tree好寫吧。。

最後這題要卡常。。我優化了好一會,才10s卡過。。

資料生成器(你可以先生成一堆一定是包含的,然後再再裡面隨機):

#include

using namespace std;

int l[1000000],r[1000000];

int tot=0;

int n=550000,t=400000;

void solve (int l,int r)

int main()

code:

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int n=600005*2;

int n,q;

int a[n];

struct qq

s[n];

ll ans[n];

struct qt

e[n];int num,last[n];

bool cmp (qq a,qq b)

stack

s;int son[n],tot[n];

void dfs1 (int x)

init(s[x].id,s[u].id);

s.push(u);

}tp=s[1].id;

sort(s+1,s+1+q,cmpi);

dfs1(tp);

}int h[n];//這個東西出現了多少次

int cnt;

int cnt1[n];//清0標記

ll lalal;//當前的答案是什麼

int b[n];//這個數其實是什麼

void add (int x)

h[x]++;

ll t=(ll)h[x]*b[x];

if (t>lalal) lalal=t;

}void change (int x)

else

}void dfs (int x)//哪乙個點,他是不是重兒子

if (son[x]!=0) dfs(son[x]);

lalal=ans[son[x]];

change(x);

ans[x]=lalal;

}void lsh ()

else

if (b[mid]>a[u]) r=mid-1;

else

if (b[mid]1;}}

}inline

int read()

while(ch>='0'&&ch<='9')

return x*f;

}int main()

lsh();

for (int u=1;u<=q;u++)

bt();

dfs(tp);

for (int u=1;u<=q;u++) printf("%lld\n",ans[u]);

return

0;}

504 七進製數

題目描述 給定乙個整數,將其轉化為7進製,並以字串形式輸出。示例 1 輸入 100 輸出 202 示例 2 輸入 7 輸出 10 注意 輸入範圍是 1e7,1e7 方法1 主要思路 1 首先確定輸入值的絕對值,然後對絕對值使用 7 進行分解,將分解後的得到的字串,根據原來數字的正負,決定是否在字串的...

nginx http post請求返回504報錯

http post請求後,返回訊息碼為504 504錯誤代表閘道器超時 gateway timeout 是指伺服器作為閘道器或 但是沒有及時從上游伺服器收到請求。伺服器 不一定是 web 伺服器 正在作為乙個閘道器或 來完成客戶 如您的瀏覽器或我們的 checkupdown 機械人 訪問所需 的請求...

nginx tomcat報504超時錯誤

1.今天nginx tomcat報504超時錯誤?1.專案本地不用nginx訪問沒問題 2.今天以前訪問也沒問題 2.nginx配置的有問題了?1.我的nginx以及其他的比如mysql等,都是使用了oneinstack安裝的,預設都做了優化 2.搜尋了一大推 nginx 504 gateway t...