题目链接

看的别人的题解,离线之后,按r排序,枚举1-n,利用pre[j],存上次j的倍数出现的位置,树状数组里统计的当前位置到最后的最大值,树状数组是求区间最值其实应该很麻烦的,但是此题用法只是求到最后的最大值,插入的时候,往前更新就好了,类似求和。

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int num[];
int p[];
int n;
struct node
{
int l,r,id;
} que[];
bool cmp(node a,node b)
{
return a.r < b.r;
}
bool cmp1(node a,node b)
{
return a.id < b.id;
}
int pre[];
int ans[];
int lowbit(int t)
{
return t&(-t);
}
void insert(int t,int d)
{
while(t)
{
p[t] = max(p[t],d);
t -= lowbit(t);
}
}
int getmax(int t)
{
int maxz = ;
while(t <= n)
{
maxz = max(maxz,p[t]);
t += lowbit(t);
}
return maxz;
}
int main()
{
int i,j,t,m,tnum;
scanf("%d",&t);
while(t--)
{
memset(p,,sizeof(p));
memset(pre,,sizeof(pre));
scanf("%d",&n);
for(i = ; i <= n; i ++)
scanf("%d",&num[i]);
scanf("%d",&m);
for(i = ; i < m; i ++)
{
scanf("%d%d",&que[i].l,&que[i].r);
que[i].id = i;
}
sort(que,que+m,cmp);
tnum = ;
for(i = ; i <= n; i ++)
{
if(tnum == m) break;
for(j = ; j*j <= num[i]; j ++)
{
if(num[i]%j == )
{
if(pre[j] != )
insert(pre[j],j);
pre[j] = i;
if (j * j== num[i]) continue ;
if(pre[num[i]/j] != )
insert(pre[num[i]/j],num[i]/j);
pre[num[i]/j] = i;
}
}
while(tnum < m&&que[tnum].r == i)
{
ans[que[tnum].id] = getmax(que[tnum].l);
tnum ++;
}
}
sort(que,que+m,cmp1);
for(i = ;i < m;i ++)
{
if(que[i].l == que[i].r)
printf("0\n");
else
printf("%d\n",ans[i]);
}
}
return ;
}

最新文章

  1. selenium--环境搭建步骤
  2. win8自动升级win8.1后 wampserver无法启动
  3. C#调用阿里云CDN API刷新缓存
  4. 【高德地图API】如何设置Marker的offset?
  5. JavaScript插入节点
  6. POJ3697+BFS+hash存边
  7. WildFly 9.0.2+mod_cluster-1.3.1 集群配置
  8. jQuery ajax传递特殊字符参数(例如+)
  9. Fedora安装qt总结四种方法
  10. NodeJS 实现 客户端 js 加密
  11. get和post提交数据的差别
  12. 关于MYCAT 读写分离,与只读事务的问题.
  13. 音频降噪算法 附完整C代码
  14. [译]Node.js框架对比:Express/Koa/Hapi
  15. sqlserver生成表结构文档的方法
  16. pprof进行golang程序性能分析
  17. Android-远程Service
  18. Socket编程 - 网络基础知识
  19. 【转载】C#, VB.NET如何将Excel转换为PDF
  20. MongoDB &#183; 引擎特性 &#183; MongoDB索引原理

热门文章

  1. HTML前端
  2. squid日志配置与轮询
  3. Windows环境下的jekyll本地搭建
  4. 《ASP.NET MVC4 WEB编程》学习笔记------RenderBody,RenderPage,RenderSection
  5. iOS 使用Storyboard 和 xib时的一些知识
  6. BestCoder17 1002.Select(hdu 5101) 解题报告
  7. java关闭流,解压缩后的清除
  8. [MAC] mac系统如何截图
  9. ASP.Net核心对象HttpRequest
  10. opencv学习笔记(一)IplImage, CvMat, Mat 的关系