Description

**Solution

这是一道套路题,不过我现在才学会套路。
对于莫队算法,进队统计答案很快,出队统计答案很慢的情况有一个套路:把所有的出队变成进队,每次询问的[l,r],把l放到l所在的块的末尾为l’,然后把l到l’-1的都入队,更新答案,因为右端点是递增的,所以右边就逐个进队就好了,然后结束的时候就把l’到l-1退队。每次l换块的时候,就把所有的数据暴力重构。

Code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
const int maxn=100007;
typedef long long ll;
int i,j,k,l,t,n,m,da,kuai[maxn],r,num,g[maxn],d[maxn],tot;
ll ans2,ans,ans1[maxn];
int c[maxn];
struct node{int a,b,c;
}b[maxn],q[maxn];
struct nod{int x,y;
}a[maxn];
bool cmp(node x,node y){return kuai[x.a]<kuai[y.a]||kuai[x.a]==kuai[y.a]&&x.b<y.b;
}
bool cmp1(nod x,nod y){return x.x<y.x;
}
bool cmp2(node x,node y){return x.a<y.a||x.a==y.a&&x.b<y.b;
}
void jin(int x){c[g[x]]++;if((ll)d[g[x]]*c[g[x]]>ans)ans=(ll)d[g[x]]*c[g[x]];
}
void chu(int x){c[g[x]]--;
/*  int i;fo(i,1,num){ans=max(d[g[i]]*c[g[i]],ans);}*/
}
int main(){
//  freopen("fan.in","r",stdin);// freopen("fan.out","w",stdout);    scanf("%d%d",&n,&m);da=sqrt(n);fo(i,1,n)scanf("%d",&a[i].x),a[i].y=i,kuai[i]=(i-1)/da+1;sort(a+1,a+1+n,cmp1);d[++num]=a[1].x;g[a[1].y]=1;fo(i,2,n){if(a[i].x!=a[i-1].x){d[++num]=a[i].x,g[a[i].y]=num;}else g[a[i].y]=num;}fo(i,1,m){scanf("%d%d",&b[i].a,&b[i].b);b[i].c=i;}sort(b+1,b+1+m,cmp);l=0;fo(j,1,m){if(b[j].a==b[j].b){q[++tot].a=b[j].a;q[tot].b=b[j].b;q[tot].c=b[j].c;continue;}if(kuai[l]!=kuai[b[j].a]){ans=0;fo(i,1,num)c[i]=0;l=kuai[b[j].a]*da,r=b[j].b;fo(i,l,r)jin(i);ans2=ans;}ans=ans2;l=kuai[b[j].a]*da;while(r<b[j].b)jin(++r);ans2=ans;while(l>b[j].a)jin(--l);ans1[b[j].c]=ans;fo(i,b[j].a,kuai[b[j].a]*da-1)chu(i);}sort(q+1,q+1+tot,cmp2);l=0;fo(j,1,m){if(l<q[j].a){ans=0;fo(i,1,num)c[i]=0;l=q[j].a,r=q[j].b;fo(i,l,r)jin(i);}else{fo(i,r+1,q[j].b)jin(i);}ans1[q[j].c]=ans;}fo(i,1,m)printf("%lld\n",ans1[i]);
}

【NOIP模拟】旷野大计算相关推荐

  1. [NOI2016]旷野大计算

    Subtask0 造计算机神题.给一个忠告:珍爱生命,远离旷野大计算...... 代码在这里:戳我 Subtask1 给定\(a,b\):求\(-2a-2b\). 熟悉操作环境:\([-(a+b)]& ...

  2. UOJ224/洛谷P1737 【NOI2016】旷野大计算 造计算机

    论一条咸鱼是有多闲系列. 浑浑噩噩做了两天,感觉自己造计算机的水平得到了本质上的提升. 官方题解看不懂啊喂,民间题解在哪找啊喂. test1 非常简单. I I + 1 2 - 3 + 4 4 O 5 ...

  3. [JZOJ4763] 【NOIP2016提高A组模拟9.7】旷野大计算

    题目 题目大意 给你一个数列,有很多个询问,询问一段区间内,某个数乘它的出现次数的最大值,也就是带权众数. 思考历程 第一次看到这道题,立马想到了树套树之类的二位数据结构,发现不行.(就算可以也很难打 ...

  4. 【JZOJ4763】【NOIP2016提高A组模拟9.7】旷野大计算

    题目描述 输入 输出 样例输入 5 5 9 8 7 8 9 1 2 3 4 4 4 1 4 2 4 样例输出 9 8 8 16 16 数据范围 解法 离线莫队做法 考虑使用莫队,但由于在删数的时候难以 ...

  5. NOIP提高组 旷野大计算

    Description Data Constraint Solution 对于这种区间查询的题,我们直接上莫队,用堆处理一下就可以用O(NN−−√logN\sqrt{N}logN)的时间卡过去. 代码 ...

  6. UOJ224 NOI2016 旷野大计算 构造、造计算机

    传送门--UOJ 传送门--Luogu 这段时间请不要找Itst聊天,Itst已经做疯了 事实证明大模拟题不可做 query 1 送分,加起来一起乘即可 I I + 1 2 < 3 1 - 4 ...

  7. 「UOJ224」「NOI2016」旷野大计算

    题目描述 随着人类计算机技术的发展,计算机的能力不断提升,让跳蚤国王非常羡慕. 终于有一天,跳蚤国王发布政令:大力发展跳蚤国的计算机产业!然而,跳蚤国尚未进行工业革命,无法制造出电子计算机所需的元器件 ...

  8. 【jzoj4763】【旷野大计算】【莫队】

    题目大意 给出长度为n的序列a,有一些询问a[l,r]中出现过的数字乘以出现的次数的最大值. 解题思路 可以考虑使用莫队,但是我们发现加一个数简单,删一个数就有点难了,可以使用线段树维护,然而这会tl ...

  9. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

最新文章

  1. 安卓okhttp上传jason和图片_微信图片总是「已过期或被清理」?简单 3 招,可摆脱烦恼...
  2. c获取当前系统时间_Python系统:程序和进程
  3. java求1000内的水仙花数
  4. NetBeans 时事通讯(刊号 # 74 - Sep 30, 2009)
  5. nvidia显卡linux 7.2,科学网—悲喜录:服务器 CentOS 7.2 安装Nvidia显卡驱动(64bit) - 袁伟的博文...
  6. 数据科学即将迎来“无代码”时代
  7. 【C#】[窗体]渐变窗口背景
  8. 苹果手机录屏软件_一款“短小精悍的”手机录屏软件
  9. java工程师项目简历_java软件工程师岗位项目经历怎么写
  10. 好的网站链接或文章链接(一)
  11. 国内半导体发展现状——部分上市公司分类名单
  12. 中国月入过万的人多不多
  13. c语言编程企业员工业绩评比,C语言 课程设计报告 员工销售业绩统计系统(9页)-原创力文档...
  14. 离散型调节变量——该如何设定模型?
  15. 89年沪漂女码农现状,月薪1万+,不多但真实?
  16. 第二个五年,左右横跳到P8年薪100w
  17. 一款轻松免杀主流杀软的c2框架
  18. iphone绑定教育邮箱_如何将iPhone绑定到Linux PC
  19. Acp含金量是否很高?如何快速通过Acp认证
  20. 2022湖南最新八大员之(安全员)模拟试题题库及答案

热门文章

  1. DIVA系列前期环境
  2. 减肥平台期突破宝典,你必须拥有!
  3. python中创建对象后可以使用运算符来调用其成员_《守株待兔》这则寓言告诉我们(...
  4. ChatGPT版必应疑似「发疯」?微软紧急限制回答数目
  5. Spring-Lifecycle分析
  6. 滴滴进军实物电商后,阿里发力网约车
  7. Windows Server 2012 R2配置IIS搭载PHP发生HTTP500解决办法
  8. PPPoE,在安全的边缘徘徊
  9. 2022美亚杯第八届中国电子数据取证大赛-个人赛write up详解,软件就用弘连和美亚,尽量写的细致一点。建议入门看,仅为了解题,没有专业精神。专业选手去看后面推荐的两篇解析,都是大佬。
  10. Windows10剪切板快捷键