所谓的懒操作模板题。

学好acm,英语很重要。做题的时候看不明白题目的意思,我还拉着队友一块儿帮忙分析题意。最后确定了是线段树延迟更新果题。我就欣欣然上手敲了出来。

然后是漫长的段错误。。。。

第一次看见这种错误,还不知道什么意思,在那儿瞎改了好久也没过。最后看了下别人的代码,才知道这个题不管给的n是几,建树都是按0~8000建树。。。。

亏我第一次提交之前还跟yyf商量说这道题的n很奇怪,怎么又两个意思。。。。

我的zoj第一题。

#include<stdio.h>
#include<string.h>
#define N 8005
struct node
{
int x,y;
int flag;
}a[N*3];
int mark[N];
void CreatTree(int t,int x,int y)
{
a[t].x=x;
a[t].y=y;
a[t].flag=-1;
if(x==y)
return ;
int temp=t*2;
int mid=(x+y)/2;
CreatTree(temp,x,mid);
CreatTree(temp+1,mid+1,y);
return ;
}
void InsertTree(int t,int x,int y,int k)
{
if(a[t].x==x&&a[t].y==y)
{
a[t].flag=k;
return ;
}
int temp=t*2;
int mid=(a[t].x+a[t].y)/2;
if(a[t].flag!=-1)
{
a[temp].flag=a[t].flag;
a[temp+1].flag=a[t].flag;
a[t].flag=-1;
}
if(y<=mid)
InsertTree(temp,x,y,k);
else if(x>mid)
InsertTree(temp+1,x,y,k);
else
{
InsertTree(temp,x,mid,k);
InsertTree(temp+1,mid+1,y,k);
}
return ;
}
int FindTree(int t,int x)
{
if(a[t].x==a[t].y)
return a[t].flag;
int temp=t*2;
int mid=(a[t].x+a[t].y)/2;
if(a[t].flag!=-1)
{
a[temp].flag=a[t].flag;
a[temp+1].flag=a[t].flag;
a[t].flag=-1;
} if(x<=mid)
return FindTree(temp,x);
else
return FindTree(temp+1,x);
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
CreatTree(1,1,8001);
int i;
for(i=1;i<=n;i++)
{
int x,y,k;
scanf("%d%d%d",&x,&y,&k);
int temp;
if(x>y)
{
temp=x;
x=y;
y=temp;
}
x++;
InsertTree(1,x,y,k);
}
memset(mark,0,sizeof(mark));
int t=-1;
for(i=1;i<=8001;i++)
{
int temp;
temp=FindTree(1,i);
if(temp==t)
continue;
else if(temp!=t&&temp!=-1)
mark[temp]++;
t=temp;
}
for(i=0;i<=8001;i++)
{
if(mark[i]!=0)
printf("%d %d\n",i,mark[i]);
}
printf("\n");
}
return 0;
}

zoj 1610 Count the Colors(线段树延迟更新)的更多相关文章

  1. zoj 1610 Count the Colors 线段树区间更新/暴力

    Count the Colors Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/show ...

  2. ZOJ 1610 Count the Color(线段树区间更新)

    描述Painting some colored segments on a line, some previously painted segments may be covered by some ...

  3. ZOJ 1610 Count the Colors (线段树成段更新)

    题意 : 给出 n 个染色操作,问你到最后区间上能看见的各个颜色所拥有的区间块有多少个 分析 : 使用线段树成段更新然后再暴力查询总区间的颜色信息即可,这里需要注意的是给区间染色,而不是给点染色,所以 ...

  4. ZOJ 1610 Count the Colors(线段树,区间覆盖,单点查询)

    Count the Colors Time Limit: 2 Seconds      Memory Limit: 65536 KB Painting some colored segments on ...

  5. 【POJ 2777】 Count Color(线段树区间更新与查询)

    [POJ 2777] Count Color(线段树区间更新与查询) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4094 ...

  6. hdu 5023 线段树延迟更新+状态压缩

    /* 线段树延迟更新+状态压缩 */ #include<stdio.h> #define N 1100000 struct node { int x,y,yanchi,sum; }a[N* ...

  7. ZOJ 1610 Count the Colors【题意+线段树区间更新&&单点查询】

    任意门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 Count the Colors Time Limit: 2 ...

  8. ZOJ 1610 Count the Colors (线段树区间更新)

    题目链接 题意 : 一根木棍,长8000,然后分别在不同的区间涂上不同的颜色,问你最后能够看到多少颜色,然后每个颜色有多少段,颜色大小从头到尾输出. 思路 :线段树区间更新一下,然后标记一下,最后从头 ...

  9. ZOJ - 1610 Count the Colors(线段树区间更新,单点查询)

    1.给了每条线段的颜色,存在颜色覆盖,求表面上能够看到的颜色种类以及每种颜色的段数. 2.线段树区间更新,单点查询. 但是有点细节,比如: 输入: 2 0 1 1 2 3 1 输出: 1 2 这种情况 ...

随机推荐

  1. hdu 4869 Task(馋)

    题目链接:hdu 4869 Task 题目大意:有n台机器,m个任务.每一个机器和任务都有有xi和yi.要求机器的xi.yi均大于等于任务的xi和yi才干运行任务. 每台机器一天仅仅能运行一个任务.要 ...

  2. Github资源汇集

    Github资源汇集 突然发现申请博客园已经两年有余,没有发表过一篇文章,十分惭愧.言归正传,先分享一下两年来收集的部分编程资源,大部分为Github上的项目.虽然网上这样的分享已不在少数,但不如我理 ...

  3. C++中出现的计算机术语4

    adaptor(适配器) 一种标准库类型.函数或迭代器,使某种标准库类型.函数或迭代器的行为类似于第二种标准库类型.函数或迭代器.系统提供了三种顺序容器适配器:stack(栈).queue(队列)以及 ...

  4. Arcgis for JS实现台风运动路径与影像范围的显示

    首先,看看详细的效果: 初始化状态 绘制中 绘制完毕 首先,组织数据.我组织的数据是JSON的,数据的详细形式例如以下: 其次,实现思路. 1.加入显示路径. 依据起始点,生成polyline的JSO ...

  5. leetcode第七题--Reverse Integer

    Problem: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 ...

  6. C语言运算符表(优先级)

    http://www.is.pku.edu.cn/~qzy/c/operator.htm

  7. 使用Windows2003创建FTP服务器 - 进阶者系列 - 学习者系列文章

    现在有不少的FTP建设软件,比如Server-U软件.不过本文只介绍使用Windows2003来创建FTP服务器. 1.  打开控制面板的添加删除程序. 2.  打开 添加删除Windows组件 3. ...

  8. ef左联三张表案例

    users:用户表 Orderss:订单表 U_O:用户和订单的中间表 OrdersEntities1 oe = new OrdersEntities1();            var resul ...

  9. Bootstrap 布局

    bootstrap提供的布局主要有两种,固定布局和流动布局. Bootstrap 固定布局 用法 <body> <div class="container"> ...

  10. 开始MVC5之旅

    ASP.NET MVC 5-开始MVC5之旅   本教程将使用Visual Studio 2013手把手教你构建一个入门的ASP.NET MVC5 Web应用程序.本教程配套的C#源码工程可通过如下网 ...