HDU - 6183 Color it 2017广西邀请赛(线段树)

题目链接

题意:

有四种操作

0操作 清空所有点

1操作 在(x,y)处插入一个带颜色的点

2 操作统计(1~x)(y1~y2)这个范围的不同的颜色数

3 结束

思路:

颜色数只有51个

我们可以建51颗线段树 因为每次查询都是1~x范围的 所以我们对于每个颜色的线段树

维护y轴的区间 节点的值维护区间最小的x 

对于每次查询 我们就只需要查询 每种颜色是否有<=x的点即可

关于剪枝:

 TLE

7784MS

5584MS

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define inf 0x3f3f3f3f
const int maxn = 1000000+5;
int cnt,x,fg;
int ls[maxn*4],rs[maxn*4],Min[maxn*4],root[60];
inline void init(){memset(root,0,sizeof(root));ls[0]=0;rs[0]=0;Min[0]=inf;cnt=0;
}
inline void push_up(int rt){Min[rt]=min(Min[ls[rt]],Min[rs[rt]]);
}
inline void update(int &rt,int l,int r,int L,int val){if(!rt){rt=++cnt;ls[rt]=0;rs[rt]=0;Min[rt]=val;}if(l==r){Min[rt]=min(Min[rt],val);return ;}int m=(l+r)>>1;if(L<=m) update(ls[rt],l,m,L,val);else update(rs[rt],m+1,r,L,val);push_up(rt);
}
inline void query(int rt,int l,int r,int L,int R){if(fg||!rt) return ;if(L<=l&&r<=R) {if(Min[rt]<=x) fg=1;return ;}int m=(l+r)>>1;if(L<=m) query(ls[rt],l,m,L,R);if(R>m) query(rs[rt],m+1,r,L,R);
}
int main(){int op,y,c,l,r;int n=maxn;while(~scanf("%d",&op)){if(op==3) break;if(op==0){init();}else if(op==1){scanf("%d %d %d",&x,&y,&c);update(root[c],1,n,y,x);}else {scanf("%d %d %d",&x,&l,&r);int ans=0;for(int i=0;i<=50;i++){fg=0;query(root[i],1,n,l,r);ans+=fg;}printf("%d\n",ans);}}return 0;
}
View Code

 

 

距离省赛越来越近 又要被暴打了(大雾) 

 

转载于:https://www.cnblogs.com/MengX/p/11291321.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点&#xff1…

详述白盒测试的逻辑覆盖的条件覆盖及其优缺点

条件覆盖详述白盒测试的逻辑覆盖的条件覆盖及其优缺点&#xff1a;条件覆盖的定义&#xff1a;与判定覆盖的区别&#xff1a;条件覆盖率&#xff1a;测试实例&#xff1a;代码&#xff1a;优缺点&#xff1a;详述白盒测试的逻辑覆盖的条件覆盖及其优缺点&#xff1a; https://b…

详述白盒测试的逻辑覆盖法的条件判定覆盖及其优缺点

条件判定覆盖的定义&#xff1a; 设计足够多的测试用例&#xff0c;使被测程序中每个判定的每个条件的所有可能取值&#xff08;真假&#xff09;至少执行一次&#xff0c;并且每个判定的所有可能&#xff08;真假&#xff09;分支也至少执行一次 。通俗来讲&#xff0c;就是条…

利用可视化软件navicat对mysql进行语句查询的使用(增删改查)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 增&#xff1a;insert 语法&#xff1a;INSERT [INTO] 表…

C# 3.0入门系列(三)

从本节开始&#xff0c;笔者将会和大家一起开始体验dlinq了。前面我们准备了数据库&#xff0c;也对数据库之间的关系做了初步的了解。有了数据库之后&#xff0c;数据和对象是一个什么样的关系呢&#xff1f;从dlinq的设计来看&#xff0c;它主要是为了解决data!objects 的问题…

(Navicat for MySQL)利用可视化软件navicat操作mysql,创建一个表举例(基础)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 步骤&#xff1a; 首先我们打开navicat:先点击下图中的表…

eclipse中egit插件使用

这篇文章当时制作有点粗糙&#xff0c;建议阅读升级版&#xff1a;eclipse中egit插件使用--升级版 使用git作为项目的代码管理工具现在是越来越火&#xff0c;网上有各种各样的文章、博客、讨论&#xff0c;其中以命令行居多。使用eclipse作为开发工具的人也是很多&#xff0c;…

以VMware workstation15.5.2pro为例如何新建虚拟机,安装镜像文件(最新)

需要用到VMware软件与镜像文件:链接:https://blog.csdn.net/hanhanwanghaha/article/details/105674470 第一步:打开VMware,点击创建新的虚拟机 第二步:选择典型,点击下一步 第三步:选择安装程序光盘镜像文件,并且下面提示已经检测到,再点击下一步

续--Flask, Django - 区别

1. 目录结构 参考&#xff1a;https://blog.csdn.net/yang9520/article/details/79740374 中文文档&#xff08;http://docs.jinkan.org/docs/flask/&#xff09;一般情况下&#xff0c;Django很系统、统一。Flask项目目录风格不同一&#xff0c;即使用上了蓝图。 2…

VMware workstation 15.5.2及镜像文件下载

链接: https://pan.baidu.com/s/175imV_FeTFcitFHay07vHQ 提取码: ayh3 希望对大家有用&#xff01; https://blog.csdn.net/hanhanwanghaha一个超级无敌可爱的人鸭 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出…

无法连接虚拟设备 floppy0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?

如果出现以上情况&#xff0c;应该是没有连接镜像文件&#xff0c;在添加镜像文件的地方添加镜像文件就可以了 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&…

CentOS 6.5 下安装 Kibana5

1. 导入Elastic PGP Key 执行命令 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 2. 安装Kibana的rpm库使用 ll /etc/yum.repos.d/ 查看当前机器上已经安装的rpm库&#xff0c;如果没有Kibana的话需要创建。用vim创建新的repo文件&#xff0c;vim /etc/yu…

详述白盒测试的逻辑覆盖法的条件组合覆盖及其优缺点

概念&#xff1a; 设计足够多的测试用例&#xff0c;使被测程序中每个判定的所有可能的条件取值组合至少执行一次。 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出…

详述白盒测试的逻辑覆盖的路径覆盖及其优缺点

详述白盒测试的逻辑覆盖的路径覆盖及其优缺点定义&#xff1a;与其他覆盖的关系&#xff1a;路径覆盖率&#xff1a;测试用例&#xff1a;优缺点&#xff1a;定义&#xff1a; https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&…

Jmeter下载安装详细步骤(最新)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 官网地址 http://jmeter.apache.org/ 步骤 1.点击Downl…

怎样使用navicat将mysql的数据表导出保存(转储SQL文件)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 1.点击你所创建的表&#xff0c; 2.右键点击转储SQL文件&…

Java如何连接mysql数据库详解(代码)

工具&#xff1a; https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; eclipseMysqlMysql驱动链接&#xff1a;…

docker 笔记

---恢复内容开始--- 安装 win10专业版 开启Hyper-V 安装docker 下载地址&#xff1a;https://store.docker.com/editions/community/docker-ce-desktop-windows vs2017 直接添加 项目docker docker stop zeekodb //停止这个容器 docker start zeekodb //运行这个容器 首先你要…

Python下载、安装及其配置

python下载&#xff1a;安装&#xff1a;配置环境变量&#xff1a;下载&#xff1a; 网址&#xff1a;https://www.python.org/downloads/windows/ 点击Download Windows x86-64 executable installer,下载到你觉得合适的地方下。 https://blog.csdn.net/hanhanwanghaha宝藏…

Pycharm社区版下载及安装教程

下载&#xff1a; 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/#sectionwindows 安装&#xff1a; 打开你下载的路径&#xff0c;双击.exe文件&#xff0c;点击运行 默认点击next之后&#xff0c;选择路径&#xff0c;尽量不要选择在C盘&#xff0c;然后…