第乙個線段樹。。。線段樹真是靈活多變啊。。。看來要好好掌握還要多加練習。。
/*pku2352
name: stars
date: 02-08-08 16:41
description: 統計問題,線段樹
*/#include
#define max 72010
#define pr printf
// file * pp=fopen("temp.txt","w");
struct nodenodes[max];
void build(int l,int r,int step)
}void insert(int l,int r,int step)
int query(int l,int r,int step)
int mid=(l0+r0)/2;
if(mid<=l)return query(l,r,step*2+1);//在右子樹上
if(mid>=r)return query(l,r,step*2);//左子樹
return query(l,mid,step*2)+query(mid,r,step*2+1);
}int ans[15003];
int main()
for(i=0;ipr("%d/n",ans[i]);
scanf("%d",&i);
}
PKU 2352 Stars 裸一維樹狀陣列
題目大意 原題鏈結 就是求每個小星星左小角的星星的個數。座標按照y公升序,y相同x公升序的順序給出 由於y軸已經排好序,可以按照x座標建立一維樹狀陣列 關鍵是要理解樹狀陣列中的c maxn 陣列的構成方式,例如c1 a1,c2 c1 a2,c3 a3,c4 c2 c3 a4,c5 a5,c6 c5 ...
poj2352 Stars 線段樹單點更新
題目在此 傳送門 題意 在乙個座標軸上,有n顆星星,每顆星都有等級,等級的範圍為0 n 1,每顆星的等級為它左下角存在的星星 不包括自身,y座標可以相等 的數量,有幾顆星等級就為幾,然後依次輸出等級0 n 1的星的數量 思路 線段樹,因為是要判斷左下角星星的數量,那麼我們先以y座標公升序排序,如果y...
poj 2352 Stars 樹狀陣列or線段樹
題目大意 在座標上有n個星星,如果某個星星座標為 x,y 它的左下位置為 x0,y0 x0 x 且y0 y。如果左下位置有a個星星,就表示這個星星屬於level x 按照y遞增,如果y相同則x遞增的順序給出n個星星,求出所有level水平的數量。分析 因為輸入是按照按照y遞增,如果y相同則x遞增的順...