1100 - Again Array Queries

                                                                                                 ->
 
 Link   <-

又是这种区间查询最值问题,题目意思是要使得这个区间的两个数的差值最小值,上次那个题用的线段树和RMQ水过,不过这题如果要求出区间最值还没什么问题,不过却要求差值最小值,这用RMQ或线段树可怎么做,于是,,,,,,于是,,,,,上网找了找思路,原来还真不是什么线段树、RMQ,而是一个简单的暴力就可以了, 我的天,这要是用前面所提的算法做也就直接陷坑里了;

暴力思路就不用说了吧,直接全部枚举区间所有差值求出最小值,但有个小知识点在这里,所以写篇博客题一下,我们千万注意题目数据范围,虽然查询次数较多,但输入的数据在1000以内,也就是说,如果查询的区间大于1000,那么必有重复元素,这时最小值直接就是0了(注意题意差值应当为正值,所以0是所有差值最小的),这就是所谓的鸽巢原理,即抽屉原理;什么意思呢,假如一年有10个苹果,有9个箱子,要使得这些苹果都能装进箱子里那么有一个盒子必然至少有两个苹果;再比如,一年365天,有366个人,那么必然有两个人生日是同一天;懂了吧,题目数据范围在1000内,如果查询区间大于1000,那么必然有相同的元素,元素个数可以很多,但元素都在1000以内;

所以这题只要注意区间大小这里就没什么问题,不然,,,果断超时~~~来看简短代码:

const int N=100000+10;
int a[N],v[N];
int main()
{
int t,n,k,i,j;
scanf("%d",&t);
int t1=t;
while(t--)
{
scanf("%d%d",&n,&k);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
printf("Case %d:\n",t1-t);
int x,y;
while(k--)
{
memset(v,0,sizeof(v));
scanf("%d%d",&x,&y);
if(abs(y-x)>1000)//查询区间大于1000则必有相同的元素-----抽屉原理,不用则超时;
{
printf("0\n");
continue;
}
j=0;
for(i=x; i<=y; i++)
v[j++]=a[i];
sort(v,v+j);
int xx=unique(v,v+j)-v;//排序后去重,此函数多次介绍,这里不在赘述;
if(xx!=j)//如果去重后元素个数减小了,说明此区间有相同的元素;
printf("0\n");
else
{
int minn=100000;
for(i=1; i<j; i++)//暴力枚举所有差值,注意已经上面已经排好序了, 所以相邻差值是最小的;
minn=min(minn,v[i]-v[i-1]);
printf("%d\n",minn);
}
}
}
return 0;
}

Light oj-1100 - Again Array Queries,又是这个题,上次那个题用的线段树,这题差点就陷坑里了,简单的抽屉原理加暴力就可以了,真是坑~~的更多相关文章

  1. light oj 1100 - Again Array Queries(暴力,鸽巢原理)

    http://lightoj.com/volume_showproblem.php?problem=1100 刚一看到这题,要询问这么多次,线段树吧,想多了哈哈,根本没法用线段树做. 然后看看数据范围 ...

  2. Light oj 1100 - Again Array Queries (鸽巢原理+暴力)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1100 给你n个数,数的范围是1~1000,给你q个询问,每个询问问你l到r之间 ...

  3. Lucky Array CodeForces - 121E (线段树,好题)

    题目链接 题目大意: 定义只含数字$4,7$的数字为幸运数, 给定序列, 区间加正数, 区间询问多少个幸运数 题解: 对于每一个数, 求出它和第一个比它大的幸运数之差, 则问题转化为区间加,查询$0$ ...

  4. 洛谷OJ U552 守墓人 线段树模板题

    题目描述 Description 在一个荒凉的墓地上 有一个令人尊敬的守墓人, 他看守的墓地从来 没有被盗过, 所以人们很放心的把自己的先人的墓 安顿在他那 守墓人能看好这片墓地是必然而不是偶然... ...

  5. Light OJ-1082 - Array Queries,线段树区间查询最大值,哈哈,水过~~

                                                                                                        ...

  6. lightoj Again Array Queries

    1100 - Again Array Queries   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 ...

  7. AC日记——Array Queries codeforces 797e

    797E - Array Queries 思路: 分段处理: 当k小于根号n时记忆化搜索: 否则暴力: 来,上代码: #include <cmath> #include <cstdi ...

  8. [Codeforces 266E]More Queries to Array...(线段树+二项式定理)

    [Codeforces 266E]More Queries to Array...(线段树+二项式定理) 题面 维护一个长度为\(n\)的序列\(a\),\(m\)个操作 区间赋值为\(x\) 查询\ ...

  9. codeforces 719E E. Sasha and Array(线段树)

    题目链接: E. Sasha and Array time limit per test 5 seconds memory limit per test 256 megabytes input sta ...

随机推荐

  1. Cunning Gena CodeForces - 417D

    Cunning Gena CodeForces - 417D 题意 先将小伙伴按需要的监视器数量排序.然后ans[i][j]表示前i个小伙伴完成j集合内题目所需最少钱.那么按顺序枚举小伙伴,用ans[ ...

  2. A Simple Task CodeForces - 11D

    A Simple Task CodeForces - 11D 题意:输出一个无向图的简单环数量.简单环指无重复边的环.保证图无重边自环. ans[i][j]表示"包含i中的点,以i中第一个点 ...

  3. Use Power bi Mobile Show SSRS 2016 Mobile Report;使用 Power BI Mobile 查阅ssrs2016 mobile report

    使用 power bi mobile 查阅 ssrs 2016 mobile report 很简单,以下是IOS客户端的演示. 系统自带了演示数据,包含power bi 的和 ssrs mobile ...

  4. html5改良的input元素的种类

    1.url类型.email类型.date类型.time类型.datetime类型.datetime-local类型. month类型.week类型.number类型.range类型.search类型. ...

  5. hihocoder1705 座位问题

    思路: 使用堆模拟.复习了priority_queue自定义结构体比较函数的用法. 实现: #include <bits/stdc++.h> using namespace std; ty ...

  6. NGUI利用深度测试实现新手引导遮罩

    实现原理:实际上就是先利用渲染队列渲染,然后再利用ZTest,改变渲染的遮挡关系. PS:Depth Testing:深度测试,也叫深度缓冲.只有最靠近观察者的物体会被绘制.深度即Z,该值越小表示离观 ...

  7. win7 快捷键 收集

    1. 轻松访问键盘快捷方式 按住右 Shift 八秒钟:启用和关闭筛选键 按左 Alt + 左 Shift + PrtScn (或 PrtScn):启用或关闭高对比度 按左 Alt + 左 Shift ...

  8. 套接字、UDP通信、TCP通信、TCP/IP协议簇

    一.套接字(socket) 1.英语单词socket:n.插座:穴:v.插入插座 2.套接字就是源IP地址和目的IP地址.源端口号和目的端口号的组合,是通过传输层进行通信的.IP指定电脑,端口指定某一 ...

  9. swift 语言评价

    杂而不精,一团乱麻!模式乱套,不适合作为一门学习和研究语言. 谢谢 LZ 介绍,看完之后更不想用 Swift 了.从 C++那里抄个 V-Table 来很先进嘛?别跟 C++一样搞什么 STL 就好了 ...

  10. xamarin.forms 绑定页面里指定元素的某个属性值

    {Binding Source={x:Reference elementName}, Path=BindingContext.propertyname, Mode=OneWay} elementNam ...