題解 Luogu P4979 礦洞 坍塌

2022-04-30 13:27:16 字數 865 閱讀 6576

原題傳送門:p4979 礦洞:坍塌

這是某場膜你賽的題,最後我一百零幾分rank三十幾滾粗

這是我唯一ac的一題

這題比較簡單qaqa操作就assign_val,把區間中的全修改成某個字元

b操作暴力判斷,先判斷區間的字元內是否相同,再判斷左右兩端的字元相同

b操作要注意細節,細節見程式qaq

#pragma gcc optimize("o3")

#include using namespace std;

inline int read()

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

return x*f;

}struct node

bool operator<(const node& o) const

};sets;

#define it set::iterator

it split(int pos)

void assign_val(int l,int r,char v)

char getc(int pos)

bool check(int l,int r)

char str[500005];

int main()

}s.insert(node(n+1-cnt,n,last));

int m=read();

while(m--)

else

char b=getc(r+1),a=getc(l-1);

if(a==b||!check(l,r))

puts("no");

else

puts("yes");}}

return 0;

}

luogu P1816 忠誠 題解

用st表來解決rmq問題。表示同時培訓學的st表,然後我就忘得差不多了,在這裡推薦一篇blog 大佬cym的 自己再 一篇 舉例 給出一陣列a 0 5 則區間 2,5 之間的最值為1。1 離線預處理 運用dp思想,用於求解區間最值,並儲存到乙個二維陣列中。具體解釋 1 離線預處理 st演算法使用dp...

題解 luogu p2078 朋友

並查集 總結 1.求兩次並查集可以用乙個陣列來使用,一次並查集後更新fa陣列即可 2.求兩個值的是否是一樣的祖先時,用find 不用fa陣列判斷,有可能其中某個值的路徑沒被壓縮 3.a,b公司都有可能是男或女 includeusing namespace std intn,m,q,p,a,b,s1,...

中位數題解 luogu P1627

給出1 n的乙個排列,統計該排列有多少個長度為奇數的連續子串行的中位數是b。中位數是指把所有元素從小到大排列後,位於中間的數。輸入格式 第一行為兩個正整數n和b,第二行為1 n的排列。輸出格式 輸出乙個整數,即中位數為b的連續子串行個數。輸入樣例1 7 4 5 7 2 4 3 1 6 輸出樣例1 資...