HDU 5172 GTY's gay friends 线段树
GTY's gay friends
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
in [l,r]
, print 'YES', else print 'NO'.
【Sample Output】
YES
NO
YES
YES
YES
YES
NO
【题意】
给出一个数列,询问连续的从l开始到r为止的数是否刚好能够组成从1开始到r-l+1的数列。
/* ***********************************************
MYID : Chen Fan
LANG : G++
PROG : HDU5172
************************************************ */ #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; const int N=1e6+; int last[N],a,sum[N]; typedef struct treetyp
{
int a,b,l,r,data;
} treetype;
treetype tree[*N];
int treetail; void maketree(int l,int r)
{
treetail++;
int now=treetail;
tree[now].a=l;
tree[now].b=r;
if (l<r)
{
tree[now].l=treetail+;
maketree(l,(l+r)/);
tree[now].r=treetail+;
maketree((l+r)/+,r);
}
} void add(int n,int i,int data)
{
if (tree[n].data<data) tree[n].data=data;
if (i==tree[n].a&&i==tree[n].b) return ;
else if (i<=(tree[n].a+tree[n].b)/) add(tree[n].l,i,data);
else add(tree[n].r,i,data);
} int res; void search(int n,int a,int b)
{
if (tree[n].a>=a&&tree[n].b<=b)
{
if (res<tree[n].data) res=tree[n].data;
return ;
}
if (tree[n].a==tree[n].b) return ;
if (a<=(tree[n].a+tree[n].b)/) search(tree[n].l,a,b);
if (b>=(tree[n].a+tree[n].b)/+) search(tree[n].r,a,b);
} int main()
{
int n,m;
while(scanf("%d%d",&n,&m)==)
{
memset(sum,,sizeof(sum));
memset(last,,sizeof(last)); treetail=;
maketree(,n);
for (int i=;i<=n;i++)
{
scanf("%d",&a);
sum[i]=sum[i-]+a;
add(,i,last[a]);
last[a]=i;
} for (int i=;i<=m;i++)
{
int l,r;
scanf("%d%d",&l,&r);
if ((r-l+)*(r-l+)/==sum[r]-sum[l-])
{
res=;
search(,l,r);
if (res<l) printf("YES\n");
else printf("NO\n");
} else printf("NO\n");
}
} return ;
}
HDU 5172 GTY's gay friends 线段树的更多相关文章
- HDU 5172 GTY's gay friends 线段树+前缀和+全排列
题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5172 bc(中文):http://bestcoder.hdu.edu.cn/contest ...
- BestCoder Round #29 1003 (hdu 5172) GTY's gay friends [线段树 判不同 预处理 好题]
传送门 GTY's gay friends Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- HDU 5172 GTY's gay friends (线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5172 题意: 给你一个n个数的数组,m次询问,询问在[L, R] 这个区间里面有没有 [1, R-L+ ...
- hdu 5172 GTY's gay friends(线段树最值)
题意: GTY有n个朋友,站成一排,每个人有一个特征值ai. 有m个询问.每次询问给两个数L,R.问你[L,R](即aL...aR)是否是1..(R-L+1)的一个全排列. 是输出YES,否则输出NO ...
- hdu 5172 GTY's gay friends
GTY's gay friends 题意:给n个数和m次查询:(1<n,m<1000,000);之后输入n个数值(1 <= ai <= n):问下面m次查询[L,R]中是否存在 ...
- GTY's gay friends 线段树判断区间是否有相同数字
http://acm.hdu.edu.cn/showproblem.php?pid=5172 判断一个区间是否为全排列是: 1.区间总和 = (1 + R - L + 1) * (R - L + 1) ...
- HDU 3074.Multiply game-区间乘法-线段树(单点更新、区间查询),上推标记取模
Multiply game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- hdu 5274 Dylans loves tree(LCA + 线段树)
Dylans loves tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- HDU 1394 Minimum Inversion Number(线段树求最小逆序数对)
HDU 1394 Minimum Inversion Number(线段树求最小逆序数对) ACM 题目地址:HDU 1394 Minimum Inversion Number 题意: 给一个序列由 ...
随机推荐
- php编译错误Note that the MySQL client library is not bundled anymore!
Note that the MySQL client library is not bundled anymore! 解决方法. 1. 查看系统有没有安装mysql header find / -na ...
- 简单Spring和mybatis整合配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- Linux入门学习教程:虚拟机体验之KVM篇
本文中可以学习到的命令: 1. aptitude 是apt-get 不会产生垃圾的版本 2. dpkg -L virtualbox 显示属于该包的文件 lsmod | grep kvmfi ...
- photoshop 魔术橡皮擦
魔术棒和橡皮的结合,不用解锁就能抠图
- springMVC中ajax的运用于注意事项
ajax的运用: 注意事项: dataType:"json"在ajax中可写可不写(ajax能够自动识别返回值类型),写了更加规范,可以在ajax识别错误返回值类型的时候,指定返回 ...
- hover带有动画效果的导航
html,body{overflow-x:hidden;} ul,li{list-style: none;} .nav{width:100%; height: 26px; overflow: hidd ...
- 内存管理 & 内存优化技巧 浅析
内存管理 浅析 下列行为都会增加一个app的内存占用: 1.创建一个OC对象: 2.定义一个变量: 3.调用一个函数或者方法. 如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户 ...
- iOS 静态库,动态库与 Framework 浅析
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
- java 环境的配置
JAVA_HOMEC:\Program Files\Java\jdk1.6.0_02 PATHC:\Program Files\Java\jdk1.6.0_02\bin CLASSPATH.;%JAV ...
- Log4j NDC MDC
NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信息(contex ...