题意:

解法:

每组询问是查询[l,r]中x的倍数,
显然可以拆分为:[1,r]中x的倍数-[1,l-1]中x的倍数.令d[i][x]表示前i个数中有多少个数是x的倍数,
O(n*(n+sq))预处理一下这个前缀和,对于每组询问就可以O(1)计算了.这个复杂度显然还是太大,主要问题在于d[i][]需要复制d[i-1][]中的每一项,
如果不复制的话又无法保证d[][]数组第二维的可持久化,
一个显然的做法是将询问离线,拆分成(1,r,x)和(1,l-1,x)两次询问,
这样之后只需要用一维的d[x]存x的倍数,不需要可持久化,d[]的每次更新是O(sq)的.算法总复杂度O(n*sq+q*2)

code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxm=4e6+5;
struct Node{int x,op,id;
};
vector<Node>Q[maxm];
int f[maxm];
int a[maxm];
int ans[maxm];
int n,q;
void solve(){cin>>n>>q;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=q;i++){int l,r,x;cin>>l>>r>>x;Q[l-1].push_back({x,-1,i});Q[r].push_back({x,1,i});}for(int i=1;i<=n;i++){int x=a[i];for(int j=1;j*j<=x;j++){if(x%j==0){f[j]++;if(x/j!=j){f[x/j]++;}}}for(auto p:Q[i]){ans[p.id]+=p.op*f[p.x];}}for(int i=1;i<=q;i++){cout<<ans[i]<<endl;}
}
signed main(){ios::sync_with_stdio(0);solve();return 0;
}

2021年广东工业大学第十五届文远知行杯程序设计竞赛 E.捡贝壳(离线做法)相关推荐

  1. E-捡贝壳 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)

    E-捡贝壳 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛) 小明来到一片海滩上,他很喜欢捡贝壳,但他只喜欢质量为x的倍数的贝壳. 贝壳被排列成一条直线,下标从1到n编号,小明打算从编号 ...

  2. G-分割 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)

    G-分割 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛) 在一个二维平面, 有n条平行于y轴的直线, 他们的x坐标是x[i], m条平行于x轴的直线y[i],他们的y坐标是y[i]. ...

  3. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(E-捡贝壳)

    题目链接:https://ac.nowcoder.com/acm/contest/13504/E 题目的意思是在给定区间寻找为X倍数的数字,首先暴力肯定会超时的,那么就利用之前讲过的利用二维下标去一存 ...

  4. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)

    A题M型字符串 链接:https://ac.nowcoder.com/acm/contest/13504/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144 ...

  5. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)详解

    传送门 A M形字符 题意: M形字符串指的是由两个相同的回文串拼接而成 给你一个串S,问有多少个前缀是M形字符串 思路: M形是有两个相同的回文串构成的,所以这个M形串本身就是回文串,我们只需要判断 ...

  6. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)C题 图墙+拉格朗日四平方数和定理

    题意: 其实就是问一个数字能不能表示成5个正平方数的和. 题目: 链接:https://ac.nowcoder.com/acm/problem/220347 来源:牛客网 时间限制:C/C++ 1秒, ...

  7. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛) H.有多短 思维

    传送门 文章目录 题意: 思路: 题意: 思路: 可以发现树的直径起点和终点一定是两个度数为111的点,所以我们可以把kkk平均的分给所有度数为111的点,这样答案就为2∗kcnt\frac{2*k} ...

  8. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)部分题解

    A.A M形字符串 简要题解 题解代码 #include <iostream> #include <string> using namespace std; typedef u ...

  9. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)E.捡贝壳

    题目链接 题目描述 小明来到一片海滩上,他很喜欢捡贝壳,但他只喜欢质量为x的倍数的贝壳. 贝壳被排列成一条直线,下标从 111 到 nnn 编号,小明打算从编号为区间 [l,r]\left [l,r ...

最新文章

  1. JAVA 实现 快速排序算法
  2. Python 爬取可用代理 IP
  3. [大數據、Big Data、巨量資料、海量資料]之分析模式工具
  4. 关于调试windows services的方法
  5. 【阿里妈妈营销科学系列】第五篇:多渠道组合路径效率评价
  6. 22021年江苏高考成绩查询,江苏高考成绩查询系统入口
  7. SVN仓库迁移到Git遇到的两个问题和解决办法
  8. The First Python man in Github
  9. Illustrator 教程,如何在 Illustrator 中使用图层组织内容?
  10. DFS+剪枝:N个蛋放入M个篮子并可以任意取
  11. Spark开发指南(0.8.1中文版)
  12. 浏览器播放视频时蓝牙耳机自动关机
  13. 人工智能实验报告 牧师与野人渡河 知识表示方法
  14. python下划线怎么输入_Python中下划线的使用方法有哪些
  15. html 字体图标转换工具,HTML5 webfont字体图标的使用
  16. kali虚拟机小键盘区不能使用解决
  17. 网络安全学习笔记——红队实战攻防(上)
  18. 期货界传奇人物葛卫东:如何将100万做到150亿
  19. DPI和分辨率的转换
  20. pep8 python 编码方式_PEP8 Python 编码规范整理

热门文章

  1. python设计模式名片_Python 设计模式 简单工厂(设计模式之禅)
  2. 在openSUSE-Leap-15.2-DVD-x86_64下只能安装QQ和钉钉不能微信
  3. 上班族干什么副业赚钱?不知道做什么,就来看看这5个!
  4. 【牛客讨论区】第六章:Elasticsearch
  5. pidgin连接 gtalk
  6. 「镁客·请讲」慧川智能康洪文:打造一个“AI+视频云平台”的中央厨房
  7. AutoVue现在支持本地2D Creo / ProE图纸
  8. SAP相关各模块的关键集成点(2):PP与CO的关键集成点小析
  9. c语言如何写gba文件,GBA开发文档.doc
  10. Bcdedit 删除 Boot Menu 中的多余启动引导