只要明白下區間如何更新上區間就可以了,左區間和右區間中只能、可能是右區間右邊界中有'w',然後右區間左邊界有'b''w',或者是右區間左邊界有'w',左區間右邊界有'w''b',滿足這個情況下面,才可能上面的區間wbw組合增多。所以只要明白這個就ok了。。。
view code
1 #include2 #include3using
namespace
std;
4const
int n = 50005;5
int cover[n<<2];6
char
temp[n];
7void pushup(int t,int l,int r,intm)8
17void build(int t,int l,int
r)18
26void update(int t,int l,int r,int
p)27
34int query(int t,int l,int r,int l,int
r)35
49int
main()
5071
else
7276}77
}78return0;
79 }
hdu 4046 樹狀陣列 2023年預選網路賽
題意 給乙個字串中,0 l,r為l到r之間有多少個連續的wbw,可以重疊。1 p,ch為在字串中的p位置改為ch。n為字串的長度,m為操作的次數。思路 這道題沒能該出來很自責,因為很簡單。更改乙個佔位置最多隻影響到三個位置。每個位置代表從這位置開始往後連續的三個字元是否為 wbw 用梳妝陣列統計就可...
hdu 1799 DFS求組合數
problem description 我們知道,在程式設計中,我們時常需要考慮到時間複雜度,特別是對於迴圈的部分。例如,如果 中出現 for i 1 i n i op 那麼做了n次op運算,如果 中出現 fori 1 i n i for j i 1 j n j op 那麼做了n n 1 2 次op...
hdu 1220 Cube 組合數學
給你乙個邊長n的正方體,切割成n n n個單位體積的小正方體,求所有公共頂點數 2的小正方體的對數。公共點的數目可能有 0,1,2,4.我們用總的對數減掉有四個公共點的對數就可以了。總的對數 n 3 n 3 1 2 一共有n 3塊小方塊,從中選出2塊 而4個交點的立方體對是兩個立方體共面的情況,所以...