分析:這道題和以前做過的模擬賽題很像:傳送門.
對於前30%的資料可以直接暴力求,k=1的資料利用線段樹求區間最大值,沒有修改操作可以用主席樹.100%的資料主席樹是肯定用不了的,觀察到k非常小,可以用線段樹來暴力維護.
線段樹記錄每個區間內的第k小值(1≤k≤10),其它的操作沒啥變化,就是pushup的時候要把兩棵子樹的資訊給合併起來,用兩個指標就好了.
要維護的資訊特別少,並且可以用線段樹來維護的可以考慮用線段樹來暴力維護.
#include #include#include
#include
using
namespace
std;
const
int maxn = 100010
;struct
node
e[maxn
<< 2
];int n, m, tag[maxn << 2
];node hebing(node a, node b)
return
temp;
}void pushup(int
o)void color(int o, int
v)void pushdown(into)}
void build(int o, int l, int
r)
int mid = (l + r) >> 1
; build(o * 2
, l, mid);
build(o * 2 + 1, mid + 1
, r);
pushup(o);
}void update(int o, int l, int r, int x, int y, int
v) pushdown(o);
int mid = (l + r) >> 1
;
if (x <=mid)
update(o * 2
, l, mid, x, y, v);
if (y >mid)
update(o * 2 + 1, mid + 1
, r, x, y, v);
pushup(o);
}node query(
int o, int l, int r, int x, int
y)
if (y >mid)
return
temp;
}int
main()
else
update(
1, 1
, n, l, r, k);
}return0;
}
Noip模擬賽總結(無題面)T1
首先是第一道貪心題。果然是我貪心做的少了 首先我不該把多重復合的一次函式拆開,我應該把最裡面的解出來,然後迭代解,我拆開後,1是沒有什麼優美的性質,2是變得更複雜 然後t1就是類似國王遊戲這樣的,因為確實可以只考慮前後兩個係數間的關係 而他要求安排順序,又不能 啟發式 安排,只能說確定一種排序規則,...
自用 每次NOIP模擬賽的總結 (無題面)
我的最大缺點是思維混亂,特別是做數學題,變數的含義都搞混了 本來我設的x是 進行了x1次 a操作和x2次 b操作之後係數的和 然後有ax1 by1 n ax2 by2 m 每進行一次 a或 a,同時必須進行一次 b,b,b,b,b取正負和a取正負是無關的,就像馬走日 先走1步橫再走兩部豎 然後我竟然...
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...