Example #1
0
int segtree::seg_len(int t,int l0,int r0,int l,int r){
	if (cnt[t]||(l0==l&&r0==r))
		return len[t];
	else{
		int m0=(l0+r0)>>1,ret=0;
		if (l<m0)
			ret+=seg_len(t+t,l0,m0,l,m0<r?m0:r);
		if (r>m0)
			ret+=seg_len(t+t+1,m0,r0,m0>l?m0:l,r);
		return ret;
	}
}
Example #2
0
int main(){
    double x[5]={0,2,3,4,6};
    double y[5]={1,2,2,1,1};
    double polyline_len=0;

    int i;
    for(i=0;i<4;i++){ //注意循环4次,对应4条折线
        polyline_len+=seg_len(x[i], y[i], x[i+1], y[i+1]);
    }

    printf("polyline length = %f\n",polyline_len);
    return 0;
}