这道题的暴力很好写。。

正解也很暴力。。。(PS:吐槽数据。。说好的≤100000却出现了100001)

正解分块。

主要思路是处理出每个块对于每个模数的最大余数。乍一看好想只能(那我优化什么???)

其实可以。。因为可以处理出块内到每个数为止的最大值。之后枚举每个数作为模数,再枚举起始点,

起始点+模数-1,也就是加上最大余数,在这个范围内的最大的数%模数就是要求的最大模数。。

这样的时间就是也就是而后面就是调和级数,时间是,这样最终的时间就是块数

那么为了时间,我们去共块,这样总时间就是,就不会超时了。

的最大情况就是1e5*(11.512925464970228420089957273422)差不多为10,那么分1000块比较好。

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define N 100000
using namespace std;
int n,m,l,r,k;;
int val[100005];
int f[100005];
int blg=1000;
int mx[105][100005];
int main()
{freopen("flower.in","r",stdin);freopen("flower.out","w",stdout);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&val[i]);}int num=(n-1)/blg+1;for(int i=1;i<=num;i++){memset(f,0,sizeof(f));int l=(i-1)*blg+1,r=min(i*blg,n);for(int j=l;j<=r;j++)f[val[j]]=val[j];for(int j=1;j<=N;j++)f[j]=max(f[j],f[j-1]);for(int j=1;j<=N;j++){for(int k=0;k<=N;k+=j){mx[i][j]=max(mx[i][j],f[min(k+j-1,N)]-k);}}}for(int i=1;i<=m;i++){int l,r,k;scanf("%d%d%d",&l,&r,&k);int l1=(l-1)/blg+1,r1=(r-1)/blg+1;int ans=0;for(int j=l1+1;j<=r1-1;j++){ans=max(ans,mx[j][k]);}for(int j=l;j<=min(l1*blg,r);j++){ans=max(ans,val[j]%k);}for(int j=max((r1-1)*blg+1,l);j<=r;j++){ans=max(ans,val[j]%k);}printf("%d\n",ans);}return 0;
}

雅礼集训 Day1 T1 养花相关推荐

  1. 雅礼集训 Day1 T1 养花

    养花 题目描述 小\(C\)在家种了\(n\)盆花,每盆花有一个艳丽度\(a_i\). 在接下来的\(m\)天中,每天早晨他会从一段编号连续的花中选择一盆摆放在客厅, 并在晚上放回. 同时每天有特定的 ...

  2. 数据结构二之线段树Ⅱ——KiKi‘s K-Number,ball,The Child and Sequence,「雅礼集训 2017 Day1」市场,Atlantis

    值域线段树+势能线段树+扫描线 KiKi's K-Number ball The Child and Sequence 「雅礼集训 2017 Day1」市场 Atlantis KiKi's K-Num ...

  3. #6029. 「雅礼集训 2017 Day1」市场(势能,区间除)

    #6029. 「雅礼集训 2017 Day1」市场 用线段树维护数列,区间上维护最大最小值,区间和还有标记,修改时,区间加直接做,而区间除时,递归到线段树上某一区间,如果这一操作等价于区间加(也就是最 ...

  4. 2017国庆 雅礼集训 题解合集

    D1 D1 T1:Clique: 我做的题太少啦,这都没看出来.首先,这个式子是 c[i]−c[j]>=dis(i,j) c[i]-c[j] >= dis(i,j),即在数轴上这样的圆,如 ...

  5. 雅礼集训及WC2018划水记

    雅礼集训1.30~2.3 noip考成250,没得去thuwc和pkuwc,和czy等去参加本来只有samjia和栋栋的集训队模拟.抱着被虐的心态去比赛. 第一天刚到比较困,比赛有点没精神,看到t3的 ...

  6. [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相(树的重心+贪心)

    [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相 description solution 一个到所有节点距离和最小的节点 ⇔\Leftrightarrow⇔ 树的重心(满足最重的儿 ...

  7. #6034. 「雅礼集训 2017 Day2」线段游戏 李超树

    #6034. 「雅礼集训 2017 Day2」线段游戏 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统 ...

  8. loj #6046. 「雅礼集训 2017 Day8」爷

    #6046. 「雅礼集训 2017 Day8」爷 题目描述 如果你对山口丁和 G&P 没有兴趣,可以无视题目背景,因为你估计看不懂 -- 在第 63 回战车道全国高中生大赛中,军神西住美穗带领 ...

  9. LibreOJ 6514. 「雅礼集训 2018 Day10」文明【虚树+LCA】

    6514. 「雅礼集训 2018 Day10」文明 [题目描述] 传送门 [题解] 考虑笨蛋的写法,可以用LCA求出1号和其他点的中点,然后DFS搜索Size大小即可,但是,复杂度显然要炸,但是我们会 ...

最新文章

  1. 动力电池检测电压c语言编程,动力电池PACK EOL测试系统
  2. 理论应用实例水杯_PID理解起来很难?系统讲解PID控制及参数调节,理论加实际才好...
  3. springboot脚本启动bat_SpringBoot系列(1)基础入门
  4. markDown 语法(个人练习篇)
  5. Windows编程之定时器的使用和定时销毁桌面出现的窗口,以及窗口句柄的获取
  6. Linux6.5图形模式安装,CentOS 6.5弹性云服务器如何安装图形化界面
  7. java弹弹球实验报告_Java弹球游戏实验报告—chen
  8. 128位java_Java:如何使用CFB和无填充实现128位AES
  9. Django框架——类视图
  10. tplink查看上网记录_TPLINK路由器控制面板查看运行状态详解
  11. 【if,elseif,if else区别】看这一篇就够了
  12. Oracle中joint,Nape中的LineJoint-线段关节
  13. 索尼Xperia XZ1拆机换上听筒和电池
  14. ftp 文件夹 上传到服务器,ftp上传文件夹到服务器 远程路径
  15. DxO PhotoLab 2.1.2 for Mac精华汉化版 DxO PhotoLab 2.1.2 for Mac中文版
  16. linux关于日志文件介绍,Linux下重要日志文件介绍
  17. Java保留两位小数的方法
  18. python读取ods格式的表格文件
  19. oracle查看列属性,oracle查询列属性
  20. matlab中voa,matlab出现错误 function [w1,w2,VoA,VoB,VoC,VoD,VoE,VA1,VB1,VC1,V

热门文章

  1. Zilliqa 的设计构思 第3部分:使共识更有效
  2. 如何利用MAXScript代码进行DNA双螺旋结构的创建
  3. python数据探索
  4. 20美金 php,树莓派|个头小本事大:13 种 20 美元以下的树莓派 Zero 替代品
  5. 强化学习1-思想及分类
  6. 链路追踪(Tracing)的前世今生(上)
  7. 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数
  8. windows 硬盘对拷
  9. HTML5+CSS3的学习(一)
  10. 【湍流】基于matlab kolmogorov结合次谐波补偿大气湍流相位屏【含Matlab源码 2178期】