題目大意:給出按照y座標公升序(如果y座標相同,按x座標公升序)的星星座標,統計它的左下星星數量(左下星星數量表示x0<=x,y0<=y的星星),左下星星數量n就表示這個星星是第n級星星,輸出各級星星的數量。
思路:因為是按照y座標公升序輸入的,所以之前輸入所有x座標比當前星星x座標小的星星都是該星星的左下星星,我們使用樹狀陣列來維護比當前x小的所有星星的數量。
#include#include#include
using
namespace
std;
#define maxn 100050typedef
long
long
ll;#define mem(x) memset(x,0,sizeof(x))ll tree[maxn],ans[maxn];
ll m;
ll lowbit(ll k)
void add(ll k,ll num)
ll getsum(ll k)
intmain()
for(i=0;i"
%lld\n
",ans[i]);
}}
樹狀陣列 poj2352 Stars
stars 題目 題意 在乙個二維陣列中統計某個等級星星的個數,星星的等級為不比此星星高且不在它右邊範圍內的星星個數。題解 因為輸入的資料已經排序,只要一邊接收輸入一邊計算等級即可。include includeusing namespace std int a 15005 c 32010 defi...
poj 2352 Stars(樹狀陣列)
題意 依次給出n個星星的座標 y座標以非遞減的順序輸入 對於每個星星,她的等級等於她左下方的星星的個數和 包括邊界上的星星 要求輸出等級0到等級n 1的星星的個數。0 x,y,32000,1 n 15000 設x i 表示橫座標為i的星星有多少顆,那麼對於乙個單一詢問 星星 k,y 的等級是多少?要...
poj 2352 Stars 樹狀陣列
我的第一道樹狀陣列哇咔咔 大一的時候怎麼都看不懂,也許我當時太不用心了吧。題意 給一些點的座標,每個點的level是看比它高度低且不在它右邊的點的個數。演算法 由於此題座標本來就是按y值從小到大,x值從小到大排列的。所以樹狀陣列中存座標為x的點的個數。每次讀入只要找1 x的sum,然後更新數量 1即...