雅礼集训 Day1 T1 养花
这道题的暴力很好写。。
正解也很暴力。。。(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 养花相关推荐
- 雅礼集训 Day1 T1 养花
养花 题目描述 小\(C\)在家种了\(n\)盆花,每盆花有一个艳丽度\(a_i\). 在接下来的\(m\)天中,每天早晨他会从一段编号连续的花中选择一盆摆放在客厅, 并在晚上放回. 同时每天有特定的 ...
- 数据结构二之线段树Ⅱ——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 ...
- #6029. 「雅礼集训 2017 Day1」市场(势能,区间除)
#6029. 「雅礼集训 2017 Day1」市场 用线段树维护数列,区间上维护最大最小值,区间和还有标记,修改时,区间加直接做,而区间除时,递归到线段树上某一区间,如果这一操作等价于区间加(也就是最 ...
- 2017国庆 雅礼集训 题解合集
D1 D1 T1:Clique: 我做的题太少啦,这都没看出来.首先,这个式子是 c[i]−c[j]>=dis(i,j) c[i]-c[j] >= dis(i,j),即在数轴上这样的圆,如 ...
- 雅礼集训及WC2018划水记
雅礼集训1.30~2.3 noip考成250,没得去thuwc和pkuwc,和czy等去参加本来只有samjia和栋栋的集训队模拟.抱着被虐的心态去比赛. 第一天刚到比较困,比赛有点没精神,看到t3的 ...
- [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相(树的重心+贪心)
[LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相 description solution 一个到所有节点距离和最小的节点 ⇔\Leftrightarrow⇔ 树的重心(满足最重的儿 ...
- #6034. 「雅礼集训 2017 Day2」线段游戏 李超树
#6034. 「雅礼集训 2017 Day2」线段游戏 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统 ...
- loj #6046. 「雅礼集训 2017 Day8」爷
#6046. 「雅礼集训 2017 Day8」爷 题目描述 如果你对山口丁和 G&P 没有兴趣,可以无视题目背景,因为你估计看不懂 -- 在第 63 回战车道全国高中生大赛中,军神西住美穗带领 ...
- LibreOJ 6514. 「雅礼集训 2018 Day10」文明【虚树+LCA】
6514. 「雅礼集训 2018 Day10」文明 [题目描述] 传送门 [题解] 考虑笨蛋的写法,可以用LCA求出1号和其他点的中点,然后DFS搜索Size大小即可,但是,复杂度显然要炸,但是我们会 ...
最新文章
- 动力电池检测电压c语言编程,动力电池PACK EOL测试系统
- 理论应用实例水杯_PID理解起来很难?系统讲解PID控制及参数调节,理论加实际才好...
- springboot脚本启动bat_SpringBoot系列(1)基础入门
- markDown 语法(个人练习篇)
- Windows编程之定时器的使用和定时销毁桌面出现的窗口,以及窗口句柄的获取
- Linux6.5图形模式安装,CentOS 6.5弹性云服务器如何安装图形化界面
- java弹弹球实验报告_Java弹球游戏实验报告—chen
- 128位java_Java:如何使用CFB和无填充实现128位AES
- Django框架——类视图
- tplink查看上网记录_TPLINK路由器控制面板查看运行状态详解
- 【if,elseif,if else区别】看这一篇就够了
- Oracle中joint,Nape中的LineJoint-线段关节
- 索尼Xperia XZ1拆机换上听筒和电池
- ftp 文件夹 上传到服务器,ftp上传文件夹到服务器 远程路径
- DxO PhotoLab 2.1.2 for Mac精华汉化版 DxO PhotoLab 2.1.2 for Mac中文版
- linux关于日志文件介绍,Linux下重要日志文件介绍
- Java保留两位小数的方法
- python读取ods格式的表格文件
- oracle查看列属性,oracle查询列属性
- matlab中voa,matlab出现错误 function [w1,w2,VoA,VoB,VoC,VoD,VoE,VA1,VB1,VC1,V
热门文章
- Zilliqa 的设计构思 第3部分:使共识更有效
- 如何利用MAXScript代码进行DNA双螺旋结构的创建
- python数据探索
- 20美金 php,树莓派|个头小本事大:13 种 20 美元以下的树莓派 Zero 替代品
- 强化学习1-思想及分类
- 链路追踪(Tracing)的前世今生(上)
- 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数
- windows 硬盘对拷
- HTML5+CSS3的学习(一)
- 【湍流】基于matlab kolmogorov结合次谐波补偿大气湍流相位屏【含Matlab源码 2178期】