SQL
博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅 订阅 | 管理

2007年10月1日

之前一道求逆序的线段树模板
struct node {
    
int l,r;
    node 
* pl, * pr;
    
int count;
}
mem[200];
int mem_pos;
int anti, n, ans[200], num[200];
node 
* root;

node 
* new_node()
{
    node 
* pt = &mem[mem_pos ++];
    memset(pt,
0,sizeof(node));
    
return pt;
}


node 
* make_tree(int il, int ir,bool flag)
{
    node 
* root = new_node();
    root 
->l = il;
    root 
->r = ir;
    
if(flag) {
        root 
->count = ir - il+1;
    }

    
if(il != ir) {
        
int mid = (il+ir)/2;
        root 
->pl = make_tree(il, mid,flag);
        root 
->pr = make_tree(mid+1, ir,flag);
    }

    
return root;
}


int find(node * root, int num)
{
    root 
->count --;
    
if(root ->l == root ->r) {
        
return root ->l;
    }

    
if(root ->pl ->count > num) {//left
        return find(root ->pl, num);
    }

    
else {//right
        return find(root ->pr, num - root ->pl ->count);
    }

}


void update(node * root, int num)
{
    root 
->count ++;
    
if(root ->l == num && root ->r == num) {
        
return ;
    }

    
if(root ->pl ->r >= num) {//left
        anti += root ->pr ->count;
        update(root 
->pl, num);
    }

    
else {//right
        update(root ->pr, num);
    }

}


void cal_P()
{
    
int i,j;
    
for(i=1;i<=n;i++) {
        anti 
= 0;
        update(root, num[i]);
        ans[ num[i] ] 
= anti;
    }

}


void cal_I()
{
    
int i,j;
    
for(i=1;i<=n;i++) {
        ans[ find(root, num[i]) ] 
= i;
    }

}

posted @ 2007-10-01 22:06 sql172 阅读(63) | 评论 (0) | 编辑
 
NUSS1017
     摘要: #include<stdio.h>#include<string.h>intn,i,j,k,mxa;boolf[2001][2001];intr[2001][2001];intuu[2001][2001];intmain(){while(scanf("%d",&n)==1){mxa=0;for(i=0;i<n;i++)for(j=0;j<n;j++)sc... 阅读全文
posted @ 2007-10-01 10:41 sql172 阅读(20) | 评论 (0) | 编辑
 
随笔:47 文章:0 评论:17 引用:0
<2007年10月>
日一二三四五六
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

与我联系

  • 发短消息

搜索

 

常用链接

  • 我的随笔
  • 我的空间
  • 我的短信
  • 我的评论
  • 更多链接
  • 我的参与
  • 我的新闻
  • 最新评论
  • 我的标签

留言簿(1)

  • 给我留言
  • 查看留言

随笔档案

  • 2007年10月 (27)
  • 2007年9月 (20)

My ACteam ->SEU_COSE_ACM_FT2

  • Bear
  • NIC~ (rss)
  • 农夫
  • 钱丁

积分与排名

  • 积分 - 3896
  • 排名 - 6221

最新评论

  • 1. re: PKU3277离散化+线段树
  • 我用STL 的 map 做的离散化,不过在poj上耗时1000MS+
  • --JooPoo

阅读排行榜

  • 1. zju1484(328)
  • 2. ACM/ICPC要求的知识点(转)(328)
  • 3. PKU1151线段树解法(292)
  • 4. PKU2486所谓树型DP(232)
  • 5. PKU3277离散化+线段树(204)

评论排行榜

  • 1. 今天农夫布置的DP题(5)
  • 2. PKU2486所谓树型DP(3)
  • 3. PKU3277离散化+线段树(2)
  • 4. 不更新要遭人鄙视了。。。。(2)
  • 5. PKU3321(1)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2008 sql172