639.線段樹-貼海報 (10分)
c時間限制:3000 毫秒 | c記憶體限制:3000 kb
題目內容:
由10^7塊1x1的玻璃構成1x10^7的海報牆,每個海報完整地覆蓋幾塊玻璃,海報的寬度可以不同。後來的人可以覆蓋
前人的海報。一張海報如果有沒被覆蓋的部分,則稱為可視海報。你的任務是找出有多少可視海報。
輸入描述
第一行是測試的總數c,接下來的行是各測試用例。
每個測試的第一行是海報的總數n, n<=10000, 然後是n個按先後順序貼的海報的位置li, ri. 滿足1<=li<=ri<=10^7。
輸出描述
每個測試的可視海報數目
輸入樣例15
1 42 6
8 10
3 47 10
輸出樣例
4**:
#include#include#include
using
namespace
std;
#define l(rt) (rt<<1)
#define r(rt) (rt<<1|1)
const
int n = 1e5+10
;int
flag;
struct
treetree[n
<<2
];struct
pointpost[n
<<2
];int
cmp1(point a,point b)
intcmp2(point a,point b)
void pushup(int
rt)void build(int l,int r,int
rt)void query(int l,int r,int
rt)
int mid = (tree[rt].l + tree[rt].r)>>1
;
if(r<=mid)
query(l,r,l(rt));
else
if(l>=mid+1
) query(l,r,r(rt));
else
pushup(rt);
}int
main()
sort(post,post+2*n,cmp1);
int tot = 0,pre = 0
;
for(int i=0;i<2*n;i++)
}build(
1,2*n,1
); sort(post,post+2*n,cmp2);
int ans = 0
;
for(int i=0;i<2*n;i=i+2
)
cout
}return0;
}
第三次作業
2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...
第三次作業
1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...
第三次作業
p67 2 12 有600mb的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率是2.4kbps 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kbps,其結果又如何?解 1 t 600 1024...