口算训练

Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 1411    Accepted Submission(s): 285

Problem Description
小Q非常喜欢数学,但是他的口算能力非常弱。因此他找到了小T,给了小T一个长度为n的正整数序列a1,a2,...,an,要求小T抛出m个问题以训练他的口算能力。

每个问题给出三个正整数l,r,d,小Q需要通过口算快速判断al×al+1×...×ar−1×ar是不是d的倍数。

小Q迅速地回答了出来,但是小T并不知道正确答案是什么,请写一个程序帮助小T计算这些问题的正确答案。

Input
第一行包含一个正整数T(1≤T≤10),表示测试数据的组数。

每组数据第一行包含两个正整数n,m(1≤n,m≤100000),分别表示序列长度以及问题个数。

第二行包含n个正整数a1,a2,...,an(1≤ai≤100000),表示序列中的每个数。

接下来m行,每行三个正整数l,r,d(1≤l≤r≤n,1≤d≤100000),表示每个问题。

Output
对于每个问题输出一行,若是倍数,输出Yes,否则输出No。
Sample Input
1 5 4 6 4 7 2 5 1 2 24 1 3 18 2 5 17 3 5 35
Sample Output
Yes No No Yes

将所给序列分解质因式,用vector将每个质因数在序列中的位置保存下来,如序列2,4,5。G[2] = {0,1,1},G[5] = {2}。G[2]即表示2在序列中出现的位置为下标0,1,1,其中在1位置出现了2次。然后对询问的数分解质因式,对每一个分解得到的质因数,如果这个质因数的个数小于等于序列中该质因数的个数就可以整除,否则不能整除。这里用二分查找法查找在序列中质因数的个数。

#include <bits/stdc++.h>
using namespace std;const int maxn = 1e5 + 5;
vector<int>G[maxn];
int n,m,t;void p(int x,int id)
{for(int i = 2;i * i <= x;i++){while(x % i == 0){G[i].push_back(id);x /= i;}}if(x > 1){G[x].push_back(id);}
}int main()
{scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);int x;for(int i = 0 ; i < maxn ; i++) G[i].clear();for(int i = 0;i < n;i++){scanf("%d",&x);p(x,i);}int l,r,d;for(int i = 0;i < m;i++){int flag = 1;scanf("%d%d%d",&l,&r,&d);l--,r--;for(int j = 2;j * j <= d;j++){int cnt = 0;while(d % j == 0){cnt++;d /= j;}if(cnt){int pos = upper_bound(G[j].begin(),G[j].end(),r) - lower_bound(G[j].begin(),G[j].end(),l);if(pos < cnt){flag = 0;break;}}}if(d > 1){int pos = upper_bound(G[d].begin(),G[d].end(),r) - lower_bound(G[d].begin(),G[d].end(),l);if(!pos){flag = 0;}}if(flag){printf("Yes\n");}else{printf("No\n");}}}return 0;
}

HDU - 6287 口算训练相关推荐

  1. hdu 6287 口算训练(二分+质因数分解+思维)

    口算训练 Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others) Total Sub ...

  2. HDU - 6287 口算训练 (质因子分解 + 二分)

    题意:给一个序列,问 [l, r] 连续区间的乘积能否被 d 整除 思路:用 vector 记录每个质因子在序列中出现的位置,upper_bound(vec[p].begin(), vec[p].en ...

  3. python口算训练出题

    python口算训练出题 为了给妹妹出算数题,编了一个乘除法的出题代码,省去了许多时间 图片 obj=open(r"C:\Users\12483\Desktop\math.txt" ...

  4. HDU6287 口算训练(唯一分解定理+二分)

    口算训练 Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others) Total Sub ...

  5. 口算训练java_提高孩子口算能力的5大方法,超实用!(附练习,可打印)

    原标题:提高孩子口算能力的5大方法,超实用!(附练习,可打印) 来源: 网络 编辑:成长园(id:czy6688990) 小编提醒 关注成长园,后台回复"1201" 即可获取打印版 ...

  6. pyhton的tkinter制作简易口算训练器

    前言 最近参加实习投递,发现好多家企业不管是什么岗位(研发or职能)都会考验到大家的数学能力 例如宝洁笔试直接就上了口算题,限时是真的紧张. 楼主不仅编程能力垃圾,数学能力也从小没有得到很好的锻炼(键 ...

  7. CCPC2018女生赛口算训练6287

    #include <cstdio> #include <vector> #include <algorithm> #include <iostream> ...

  8. 口算训练-(2018-女生赛)(二分+唯一分解定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6287 题意:给你n个数,每个数都很大; 有q次询问,让你判断一下从下标为: [L,R]的范围内 能否通 ...

  9. 用java编程100道问题//10弟弟的作业,口算训练

    弟弟的作业 题目描述 Rock的弟弟刚做完了"100以内数的加减法"这部分的作业,请你帮他检查一下.每道题目(包括弟弟的答案)的格式为a + b = c或者a – b = c,其中 ...

  10. 2021年中国大学生程序设计竞赛 女生专场 - 热身赛 Problem C. 口算训练(质因子分解)

    题目分析:判断 xxx 是 yyy 的倍数,等价于质因子分解后, yyy 中的每个质因子的出现次数都小于等于其在 xxx 中的出现次数. 那么对于每次询问 [l,r,d][l,r,d][l,r,d], ...

最新文章

  1. ORACLE空值漫谈2
  2. python查询sqlserver视图_如题:sqlserver连接Oracle数据库,在sql查询分析器中查询oracle中的视图,根据时间字段查询,SQL语句...
  3. xshell如何登陆数据库_Xshell连接远程服务器和操作数据库
  4. 腾讯TBS X5 WebView的简单使用
  5. Zend Server更新至6.2版本——虚拟主机全方位管理
  6. 【蓝桥杯官网试题 - 历届试题】格子刷油漆(dp)
  7. ASP无组件上传带进度条
  8. java 寻找峰值峰谷_寻找峰值
  9. html提交表单给php邮件发送,在HTML表单中通过PHP自动发送电子邮件
  10. es6 原生构造函数的继承
  11. 计算机二级晓云是企业人力,全国计算机二级Ms-Office精选真题试卷
  12. mediacodec延时_FFmpeg优化点播延时方案
  13. LCA--最近公共祖先
  14. 单片机 架构 程序 经验总结_收藏!牛人总结的单片机应用程序架构
  15. /usr/bin/sed: No such file or directory
  16. linux服务器运行dyna,dynamips分布式实现详解
  17. java递归求和_java递归算法求和有哪些方式实现?
  18. php格林威治时间,PHP默认时间是格林威治时间。
  19. 【408】计算机组成原理第一轮强化笔记
  20. 使用JavaFX完成刽子手游戏

热门文章

  1. 亚马逊多账号操作如何判断关联
  2. 如何在HTML添加背景图片么,如何在HTML中添加背景图片
  3. AOP的连接点与切点区别,连接点,切点,切面的基础概念
  4. ssh 原理及fingerprint异常处理
  5. 拼图游戏 java_Java拼图游戏源码
  6. CS5211 eDP转LVDS转换器芯片 CS5211芯片说明书
  7. Python OpenCV 保存mp4视频
  8. Python爬虫之实例---网易云评论爬取
  9. 市场调研报告-全球与中国船用下水推车市场现状及未来发展趋势
  10. 通俗易懂讲解数据库三大范式