time limit: 1000 ms
memory limit: 65536 kb
total submissions: 134
accepted: 20
小明是乙個非常浪漫的畫家,他喜歡畫各種奇奇怪怪的畫,雖然沒人理解他畫的究竟是什麼東西。
有一天,他突發奇想,對於一根木條,他每次從木條中選取乙個區間[l,r]進行染色,經過多次染色後,他想知道在[a,b]區間中有幾個未被染色的子區間?
可惜小明雖然畫畫非常厲害,但是並不擅長解決這類問題,於是,他拿著這根木條來找你,希望你能夠給他幫助。
假設木條無限長,所有查詢都在木條長度範圍內,未被染色的子區間是指,木條上染過色的區間的間斷部分。
第一行乙個整數t,代表資料組數。
對於每組資料,第一行給出兩個整數n,q,分別代表染色的區間個數,以及查詢個數。
之後n行,每行兩個整數l,r,表示將l到r的區間進行染色,包含l,r兩個節點。
之後q行,每行兩個整數a,b,表示詢問a到b總共有多少未被染色的子區間。
兩組資料之間用乙個空行隔開。
t<20
n<10000
q<100000
0<=l0<=a<=b<1000000
對於每次詢問,輸出乙個整數,表示查詢結果。
每組資料之後,請輸出乙個空行。
2 2 3
1 2
3 4
1 3
3 4
5 5
3 3
1 5
2 8
5 6
0 5
0 9
9 9 1
0 1
1 2
1 對於第一組資料,[0,1),(2,3),(4,+)是未染色的子區間,因此查詢[1,3]可以找到(2,3)這個子區間,而對於[3,4]不能找到,對於[5,5]可以找到[5,5]。
對於第二組資料,[0,1)和(8,+)是未染色的子區間,因此對於[0,5]只有子區間[0,1),對於查詢[0,9],有子區間[0,1)和(8,9],對於查詢[9,9],有[9,9]這個子區間。
//這道題還木有做出來,正在努力a中,歡迎各位朋友給出解題思路
2017-4-29 19:02:19----補下這道題的題解,這道題用的是線段是+離散化,**參考如下
#include#include#includeusing namespace std;
#define lson i<<1
#define rson (i<<1)+1
int maxn,t,n,m;
int va[500000];
int ha[1000005],pre,pre2;
struct nodeb[100005];
int a[100005];
void build(int i,int l,int r)
inline void pushup(int i)
inline void pushdown(int i)
void update(int i,int l,int r,int l,int r)
if(va[i]!=-1)pushdown(i);
if(r<=(l+r)/2)update(lson,l,(l+r)/2,l,r);
else if(l>=(l+r)/2+1)update(rson,(l+r)/2+1,r,l,r);
else
pushup(i);
}int query(int i,int l,int r,int l,int r)
if(r<=(l+r)/2)return query(lson,l,(l+r)/2,l,r);
else if(l>=(l+r)/2+1)return query(rson,(l+r)/2+1,r,l,r);
else return query(lson,l,(l+r)/2,l,(l+r)/2) + query(rson,(l+r)/2+1,r,(l+r)/2+1,r);
}inline void init()
pre2 = 1;
for(int i=max(a[0]-1,0);i<=a[2*n-1]+2;i++)
if(ha[i])
else ha[i] = pre2;
}int main()
{ scanf("%d",&t);
while(t--)
{scanf("%d%d",&n,&m);
for(int i=0;i
安徽省2016「京勝杯」程式設計大賽 A 砝碼稱重
time limit 1000 ms memory limit 65536 kb total submissions 61 accepted 37 小明非常喜愛物理,有一天,他對物理實驗室中常用的彈簧拉力計產生了興趣。實驗室中有兩種質量不同的砝碼,小明分別用a個第一種砝碼放在彈簧拉力計上和b個第二種...
安徽省2016「京勝杯」程式設計大賽 E 轉啊轉
time limit 1000 ms memory limit 65536 kb total submissions 59 accepted 15 在二維平面上,有乙個固定的圓和乙個固定的點 保證該點不在圓上 還有乙個動點在圓上以角速度w繞圓心一直轉。在t時刻,連線該動點與定點成一條直線k,求直線k...
安徽省2016「京勝杯」程式設計大賽 E 轉啊轉
time limit 1000 ms memory limit 65536 kb total submissions 59 accepted 15 在二維平面上,有乙個固定的圓和乙個固定的點 保證該點不在圓上 還有乙個動點在圓上以角速度w繞圓心一直轉。在t時刻,連線該動點與定點成一條直線k,求直線k...