SUDTOJ 3323園藝問題 線段樹

2021-07-05 07:44:18 字數 2262 閱讀 3425

園藝問題

time limit: 1000ms memory limit: 65536k 有疑問?點這裡^_^

題目描述

本巨養了一盆雙色茉莉。這種花有一種特點:第i朵花在第di天盛開,剛開時是紫色的,ai天之後會變成白色,再過bi天就會凋謝。如di = 3,ai = 4,bi = 5,那麼在第3至6天為紫色,第7至11天為白色,第11天之後就凋謝了。

現在給出一些事件,你需要按要求給出答案。

事件1:在第di天開了一朵花,這朵花ai天後變成白色,再過bi天就會凋謝。

事件2:詢問在第x天時,紫色花朵和白色花朵各有多少。

輸入輸入包含多組。對於每組資料:

第一行包含乙個整數n (1 <= n <= 300,000)。

接下來的n行,為下述兩種格式的一種,分別代表事件1和事件2。

1 di ai bi

2 x對於所有資料有:1 <= di,ai,bi <= 1,000,000,000 ,1 <= ai <= 3,000,000,000;

輸出對於每個事件2輸出一行,包含兩個整數代表答案。

示例輸入

4 1 3 2 3

2 4

1 2 1 1

2 10

示例輸出

1 0

0 0

周賽的時候沒有想到可以先全部輸入進行離散化,再進行建樹,我嘯的一句話驚醒了我

#include 

#define ll long long

#define esp 1e-8

#define inf 0x3f3f3f3f

#define fread() freopen("../in.in","r",stdin)

#define fwrite() freopen("../out.out","w",stdout)

using

namespace

std;

const

int max = 301000;

typedef

struct flow

flow;

union flower

;typedef

struct seg

tree;

int sta[max];

flower ff[max];

tree t[max*5];

ll da[max*2];

int top2,top3;

ll a,b,d;

int c;

int num1,num2;

void update_down(int site,int l,int r)//向下更新

t[site<<1].sum1+=t[site].sum1;

t[site<<1].sum2+=t[site].sum2;

t[site<<1|1].sum1+=t[site].sum1;

t[site<<1|1].sum2+=t[site].sum2;

t[site].sum1=t[site].sum2=0;

}void build(int l,int r,int site)//建樹

int mid=(l+r)>>1;

build(l,mid,site<<1);

build(mid+1,r,site<<1|1);

}void update(int l,int r,int l,int r,int site,int ans)//更新

else

return ;

}int mid=(l+r)>>1;

if(r<=mid)

else

if(l>mid)

else

}void query(int l,int r,int x,int site)//查詢

update_down(site,l,r);

int mid=(l+r)>>1;

if(x<=mid)

else

}int main()

else

}sort(arr.begin(),arr.end());

arr.erase(unique(arr.begin(),arr.end()),arr.end());//去重

int ans=0;

mapint>ma;

for(int i=0; i//編號

}build(1,ans,1);

for(int i=1;i<=n;i++)

else}}

return

0;}

3 3 差錯控制

概括地說,傳輸中的差錯都是由於雜訊引起的。雜訊有兩大類 一類是通道中所固定的 持續存在的隨機熱雜訊 另一類是由於外界特定個的短暫原因所造成的衝擊雜訊。前者可以通過提高訊雜比來減少或避免干擾,而後者不可能靠提高訊號幅度來避免干擾造成的差錯,是產生差錯的重要原因。通常利用編碼技術進行差錯控制,主要由兩類...

3 3學習內容

1.流程控制語句 順序結構,分支結構,迴圈結構。2.if 單分支,雙分支 else 多分支 else if switch if語句後的大括號最好不要省略 雙分支if至少執行乙個 多分支if最多執行乙個,如果有else最少執行乙個,如果沒有else最少執行0個。switch 表示式 表示式的型別 可以...

3 3 假想聚集

假想聚集很像標準的有序集。不過,它們能幫助回答一種不同型別的問題 如果乙個值在其中,那麼結果會怎樣?這不是關於資料庫內實際存在的值,而是有關乙個特定值真實存在時的假想結果。select region,rank 9000 within group order by production desc nu...