**:
給出以下操作:$「0」$代表清空所有顏色,$"1$ $x$ $y$ $c$$"$代表在座標$(x,y)$塗上第$c$種顏色,$"2$ $x$ $y_1$ $y_2$$"$代表統計$x$軸上$[1,x]$和y軸上$[y_1,y_2]$的顏色數,乙個點可以有多種顏色,$「3」$代表結束。資料保證$n,m \leq 1e6,0 \geq c \leq 50,y_1 \leq y_2$。
別問,問就開50棵線段樹(mle警告),開$50$棵動態開點的線段樹,以$y$軸為結點,維護區間內的顏色的最小的橫座標值。查詢時,橫座標的區間左邊界已經確定,區間右邊界為$x$,則小於等於$x$的才會被統計,則區間中的最小橫座標值決定該區間是否有顏色滿足要求,然後依次查詢$50$種顏色即可。(本題需要剪枝,如果在左子樹搜到了,就不需要在右子樹搜尋,否則會tle)。
ac**:
#include #pragma gcc optimize(3)using namespace std;
const int maxn=1000005;
const int m=0x3f3f3f3f;
struct segtree
*/ };
node tr[maxn*3];
int rt[51];
int tot=0;
inline void init()
inline bool query(int l,int r,int rt,int lim)
int ans=0;
int m=(tr[rt].l+tr[rt].r)>>1;
if(l<=m&&!ans)
ans+=query(l,r,tr[rt].ls,lim);
if(r>m&&!ans)
ans+=query(l,r,tr[rt].rs,lim);
return ans;
}};segtree tr;
int main()
else if(a==2)
}return 0;
}
hdu6183 線段樹動態開點
在寫題的時候偶然發現的 都是大佬 大概就是 將線段樹接下來的 i 1 和 i 1 1改為了用乙個陣列l i 和r i 來儲存感覺很有意思 有一點點像鏈式前向星 題目位址 hdu6183 還乙個大佬寫的 cdq 線段樹 include define mod 998244353 using namesp...
hdu 6183 線段樹的空間優化
題意 乙個空的座標系,有 種操作 1 x y c表示在 x,y 點染上顏色c 2 x y1 y2表示查詢在 1,y1 到 x,y2 範圍內有多少種不同的顏色 0表示清屏 3表示程式退出 0 x,y 1000000,0 c 50 思路 開五十個線段樹 一種顏色乙個 以y為下表,儲存min x,因為查詢...
!HDU 1176 DP (矩陣動規)
題意 有乙個數軸,從0到10,小明開始在5這個位置。現在天上開始掉餡餅,小明每次只能移動單位一的長度,求小明最多能接到多少餡餅。分析 剛開始接觸動態規劃,還沒有真正理解動規的思維,所以剛開始的dp做法不知道對不對但是tle了。正確的方法是建立乙個以時間為行位置為列的矩陣,最初map i j 代表的是...