biubiu~~~

这道题就是预处理,我们就是枚举每一个数,找到左边比他大的数的个数以及其对应的区间,右边也如此,我们把左边的和右边的相乘就得到了我们的答案,我们发现这是O(n^3)的,但是实际证明他能A,分析证明他的时间复杂度是较小的,这个故事告诉我们,对于一些估计的时间复杂度,如果我们估计得太草率以至于他过于偏离实际我们往往会做出错误的决定,于是我们对于某一些拿不准的时间复杂度应该稍作分析。

正解FFT.............

  1. #include <cstdio>
  2. #include <cstring>
  3. namespace Pre{
  4. inline void read(int &sum){
  5. register char ch=getchar();bool symbol=;
  6. for(sum=;ch<''||ch>'';ch=getchar())if(ch=='-')symbol=;
  7. for(;ch>=''&&ch<='';sum=(sum<<)+(sum<<)+ch-'',ch=getchar());
  8. if(symbol)sum=-sum;
  9. }
  10. const int N=;
  11. int Num_Kth[N][N];
  12. int z[N],y[N],l,r,Q;
  13. int n,a[N];
  14. inline void Init(){
  15. for(int mid=;mid<=n;mid++){
  16. memset(z,,sizeof(z));
  17. memset(y,,sizeof(y));
  18. l=r=;z[]=y[]=;
  19. for(int i=mid-;i>;--i){
  20. if(a[i]>=a[mid])++l;
  21. ++z[l];
  22. }
  23. for(int i=mid+;i<=n;++i){
  24. if(a[i]>a[mid])++r;
  25. ++y[r];
  26. }
  27. for(int i=;i<=l;++i)
  28. for(int j=;j<=r;++j)
  29. Num_Kth[a[mid]][i+j+]+=z[i]*y[j];
  30. }
  31. }
  32. }
  33. namespace P=Pre;
  34. inline void Init(){
  35. P::read(P::n),P::read(P::Q);
  36. for(int i=;i<=P::n;i++)P::read(P::a[i]);
  37. P::Init();
  38. }
  39. inline void Work(){
  40. register int k,x;
  41. while(P::Q--){
  42. P::read(k),P::read(x);
  43. printf("%d\n",P::Num_Kth[x][k]);
  44. }
  45. }
  46. int main(){
  47. Init(),Work();
  48. return ;
  49. }

【NOIP 模拟赛】区间第K大(kth) 乱搞的更多相关文章

  1. noip模拟赛 区间

    分析:要遍历所有的区间,肯定是枚举左端点,然后再枚举右端点.关键是怎么高效地求区间&,|,一般而言是用前缀和的,但是&,|不满足区间可减性,所以可以考虑线段树?这道题不带修改操作,用线 ...

  2. POJ 2104 K-th Number 主席树(区间第k大)

    题目链接: http://poj.org/problem?id=2104 K-th Number Time Limit: 20000MSMemory Limit: 65536K 问题描述 You ar ...

  3. HDU 2665 Kth number(主席树静态区间第K大)题解

    题意:问你区间第k大是谁 思路:主席树就是可持久化线段树,他是由多个历史版本的权值线段树(不是普通线段树)组成的. 具体可以看q学姐的B站视频 代码: #include<cmath> #i ...

  4. [hdu2665]Kth number(划分树求区间第k大)

    解题关键:划分树模板题. #include<cstdio> #include<cstring> #include<algorithm> #include<cs ...

  5. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  6. NOI.AC NOIP模拟赛 第三场 补记

    NOI.AC NOIP模拟赛 第三场 补记 列队 题目大意: 给定一个\(n\times m(n,m\le1000)\)的矩阵,每个格子上有一个数\(w_{i,j}\).保证\(w_{i,j}\)互不 ...

  7. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  8. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  9. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

随机推荐

  1. Laravel -- 模型

    模型文件 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { / ...

  2. Python学习:If 语句与 While 语句

    If 语句 用以检查条件:如果条件为真(True),将运行这一块的语句(称作 if-block 或 if 块)    则将运行另一块语句(称作 else-block 或 else 块),其中 else ...

  3. xss挑战赛小记 0x02(prompt(1))

    0x0O 上次搜xss挑战赛的时候 还找到了一个看上去难度更高的挑战赛 今天做了一下 学到了很多新东西 这个挑战赛能够在页面成功prompt(1)就算过关了 挑战地址 http://prompt.ml ...

  4. 【Keras案例学习】 多层感知机做手写字符分类(mnist_mlp )

    from __future__ import print_function # 导入numpy库, numpy是一个常用的科学计算库,优化矩阵的运算 import numpy as np np.ran ...

  5. laravel5.5jwt-auth的使用

    laravel5.5 + jwt-auth:dev-develop 安装扩展 composer require tymon/jwt-auth:dev-develop --prefer-source 添 ...

  6. Java检测端口的占用情况

    突然间想到这个问题,在网上搜了一下 http://blog.csdn.net/danieluk/article/details/18518175 网上有很多文章都是用上面那个方法来解决这个问题的,总感 ...

  7. [HNOI2004]打鼹鼠

    鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个\(n*n\)的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气.你 ...

  8. Visual Studio Code 配置Go 开发环境最简单的方法!!!

    由于大家都知道的原因,在国内如果想访问go等各种资源,都会遇到某种不可预知的神奇问题.导致在VS Code中安装 go 各种插件都会失败. 于是乎,网上就出现了各种各样的解决方案:什么手动git cl ...

  9. JAVA的文件操作【转】

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  10. term "JavaScript"

    在Web浏览器上下文中理解的总称“JavaScript”包含几个非常不同的元素. 其中一个是核心语言(ECMAScript),另一个是Web API的集合,包括DOM(文档对象模型) JavaScri ...