• 二维线段树模式


     1 #include<iostream>
     2 using namespace std;
     3 const int N=3000;
     4 struct SubNode
     5 {
     6     int left,right;
     7     int value;
     8 }
     9 struct Node
    10 {
    11     int left,right;
    12     SubNode subnode[N];
    13     int value;
    14 }
    15 Node node[N];
    16 int left,right;//要使用区间的左右端点 
    17 void Sub_build(int l,int r,int i,int t)//头节点的i=0; 
    18 {
    19     node[t].subnode[i].left=l;
    20     node[t].subnode[i].right=r;
    21     node[t].subnode[i].value=0;
    22     if(l==r)return;//以点作为基本单位,每个叶子是一个点 
    23     //if(l+1==r)return//以边作为基本单位,每个叶子是一条长度为1的边
    24     int mid=(l+r)>>1;
    25     Sub_build(l,mid,2*i+1,t);
    26     Sub_build(mid+1,r,2*i+2,t);
    27     //Sub_build(mid, r,2*i+2,t);
    28 }
    29 void Main_build(int l,int r,int i)//i从零开始 
    30 {
    31     node[i].left=l;
    32     node[i].right=r;
    33     node[i].value=0;//相应的值 
    34     Sub_build(left,right,0,i);
    35     if(l==r)return;
    36     if(l+1==r)return;
    37     int mid=(l+r)>>1;
    38     Main_build(l,mid,2*i+1);
    39     Main_build(mid+1,r,2*i+2);
    40     //Main_build(mid,r,2*i+2);
    41 }
    42 void query(int l,int r,int left,int right,int i)
    43 {
    44     //按照条件寻找相应的值 
    45     
    46 }
    What I don't dare to say is I can't!
  • 相关阅读:
    Java_多线程入门
    JAVA多线程基础(一)
    多线程1
    1.优化MySQL数据库
    廖胤松
    Mybatais
    Spring Boot入门
    MySQL的安装步骤详解
    MySQL入门
    WEB测试方法
  • 原文地址:https://www.cnblogs.com/sytu/p/3901198.html
Copyright © 2020-2023  润新知