zoukankan      html  css  js  c++  java
  • 【ZOJ】1610 Count the Colors

     1 #include<cstdio>
     2 #include<cstring>
     3 #define MAXN 8010
     4 int tree[MAXN<<2],color[MAXN],ans[MAXN];
     5 inline void PushDown(int rt)
     6 {
     7     if(tree[rt]!=-1)
     8     {
     9         tree[rt<<1]=tree[rt<<1|1]=tree[rt];
    10         tree[rt]=-1;
    11     }
    12 }
    13 void Update(int x,int y,int val,int L,int R,int rt)
    14 {
    15     if(x<=L&&R<=y)
    16         tree[rt]=val;
    17     else
    18     {
    19         int mid=(L+R)>>1;
    20         PushDown(rt);
    21         if(mid>=x)
    22             Update(x,y,val,L,mid,rt<<1);
    23         if(y>mid)
    24             Update(x,y,val,mid+1,R,rt<<1|1);
    25     }
    26 }
    27 void Query(int L,int R,int rt)
    28 {
    29     if(tree[rt]!=-1)
    30     {
    31         for(int i=L;i<=R;i++)
    32             color[i]=tree[rt];
    33     }
    34     else if(L!=R)
    35     {
    36         int mid=(L+R)>>1;
    37         Query(L,mid,rt<<1);
    38         Query(mid+1,R,rt<<1|1);
    39     }
    40 }
    41 int main()
    42 {
    43     int n,x,y,val,i,j;
    44     while(~scanf("%d",&n))
    45     {
    46         memset(tree,-1,sizeof(tree));
    47         memset(color,-1,sizeof(color));
    48         memset(ans,0,sizeof(ans));
    49         while(n--)
    50         {
    51             scanf("%d%d%d",&x,&y,&val);
    52             if(x<y)
    53                 Update(x+1,y,val,1,MAXN,1);
    54         }
    55         Query(1,MAXN,1);
    56         for(i=0;i<MAXN;i++)
    57         {
    58             if(color[i]!=-1)
    59             {
    60                 for(j=i;j<MAXN&&color[i]==color[j];j++);
    61                 ans[color[i]]++;
    62                 i=j-1;
    63             }
    64         }
    65         for(i=0;i<MAXN;i++)
    66         {
    67             if(ans[i])
    68                 printf("%d %d\n",i,ans[i]);
    69         }
    70         putchar('\n');
    71     }
    72     return 0;
    73 }
    新博客:www.zhixiangli.com
  • 相关阅读:
    [GEF]实现模板功能
    一篇WTP文章
    写代码的代码:JET
    投票选择eclipse.org的新界面
    在SWT里显示AWT对象
    Plugin.xml > Manifest.mf
    关于本体编程的实现
    一个用OWLS组装Web服务的例子
    感受Ruby on Rails
    通过OCP考试
  • 原文地址:https://www.cnblogs.com/DrunBee/p/2513498.html
Copyright © 2011-2022 走看看