time limit: 20 sec memory limit: 512 mb
submit: 284 solved: 152
[submit][status][discuss]
老 c 是個程式設計師。
最近老 c 從老闆那裡接到了乙個任務——給城市中的手機基站寫個管理系統。作為經驗豐富的程式設計師,老 c 輕鬆
地完成了系統的大部分功能,並把其中乙個功能交給你來實現。由於乙個基站的面積相對於整個城市面積來說非常
的小,因此每個的基站都可以看作座標系中的乙個點,其位置可以用座標(x, y)來表示。此外,每個基站還有很多屬
性,例如高度、功率等。運營商經常會劃定乙個區域,並查詢區域中所有基站的資訊。現在你需要實現的功能就是,
對於乙個給定的矩形區域,回答該區域中(包括區域邊界上的)所有基站的功率總和。如果區域中沒有任何基站,則回
答 0。
第一行兩個整數 n, m,表示一共有n個基站和m次查詢。
接下來一共有 n 行,每行由x_i , y_i , p_i 三個空格隔開的整數構成,表示乙個基站的座標(x_i , y_i )和功率p
_i 。不會有兩個基站位於同一座標。
接下來一共有m行,每行由x1_j , y1_j , x2_j , y2_j 四個空格隔開的整數構成,表示一次查詢的矩形區域。該矩
形對角座標為(x1_j , y1_j )和(x2_j , y2_j ),且 4 邊與座標軸平行。
2^31 ≤ x_i , y_i , p_i , x1_j , y1_j , x2_j , y2_j < 2^31, x1_j ≤ x2_j, y1_j ≤ y2_j。
輸出 m 行,每行乙個整數,對應每次查詢的結果。
4 20 0 1
0 1 2
2 2 4
1 0 8
0 0 1 1
1 1 5 6114
——————————————————————
這道題明顯的掃瞄線qaq 資料範圍沒給就開大了點
橫縱座標x y離散化x按y排序 然後按y掃一遍就好了
無形卡常最為致命qaq
這裡我還是貼一波正常版的吧 23333
#include#includeview code#include
#define ll long long
using
namespace
std;
const
int m=1e6+7
;ll read()
while(c>='
0'&&c<='9')
return ans*f;
}ll ans[m],s[
3*m],xs[3*m];
intn,m,xp,qp,ep;
int lowbit(int x)
void add(int
x,ll v)
}ll query(
intx)
return
ans;
}struct
q
void
calc()
}q[2*m];
struct
pos
void
calc()
}e[m];
void $(ll &x)
intmain()
; }
for(int i=1;i<=m;i++);
q[qp++]=(q);
}sort(xs,xs+xp);
for(int i=0;i) $(e[i].x);
for(int i=0;i) $(q[i].l),$(q[i].r);
sort(e,e+ep);
sort(q,q+qp);
for(int i=0,j=0;i)
for(int i=1;i<=m;i++) printf("
%lld\n
",ans[i]);
return0;
}
bzoj1257 CQOI 餘數之和
題目 time limit 5 sec memory limit 162 mb submit 2383 solved 1105 submit status discuss 給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值,其中k mod i表示k除...
BZOJ1818 Cqoi2010 內部白點
給定平面上的一些黑點,其它位置都是白點,乙個白點如果上下左右都有黑點就會變成黑點,求最終會有多少個黑點 就是求交點個數 離散化後,取出所有線段,然後沿任意乙個軸朝著乙個方向掃,然後把平行於另乙個軸的線段用端點記錄,掃到一端就在樹狀陣列裡 1,另一端 1,樹狀陣列求個區間和貢獻答案即可 const m...
bzoj3295 CQOI2011 動態逆序對
time limit 10 sec memory limit 128 mb submit 3122 solved 986 submit status discuss 對於序列a,它的逆序對數定義為滿足i aj 的數對 i,j 的個數。給1到n的乙個排列,按照某種順序依次刪除m個元素,你的任務是在每次...