bzoj5358】的更多相关文章

[BZOJ5358]/[HDU6287]口算训练 题目大意: 给定一个长度为\(n(n\le10^5)\)的正整数序列\(a_{1\sim n}\),\(m(m\le10^5)\)次询问.每次询问给出三个正整数\(l,r,d\),判断\(\displaystyle\prod_{i=l}^ra_i\)是不是\(d\)的倍数. 思路: 线性筛预处理出\(10^5\)内的所有素数.对于\(a\)中每一个数分解质因数,并开vector存储每个质因子出现的位置(如在同一个位置出现多次则算作多次).对于每次…
Problem A. 口算训练Input file: stdinOutput file: stdoutTime limit: 5 secondsMemory limit: 512 megabytes小 Q 非常喜欢数学,但是他的口算能力非常弱.因此他找到了小 T,给了小 T 一个长度为 n 的正整数序列 a1, a2, ..., an,要求小 T 抛出 m 个问题以训练他的口算能力.每个问题给出三个正整数 l, r, d,小 Q 需要通过口算快速判断 al × al+1 × ... × ar−1…
分析: 没想到这道题还能二分查找... 这题主席树的话,裸的很显然...我们将每一个数分解质因数,之后建一个可持久化权值线段树维护[L,R]区间内的每一种质因子的个数,分解质因数的话,可以选择用线筛,总体时间复杂度为O(qlognlogn+nlogn+n):之后的常数巨大,比根号跑的还慢...当然,主席树可以只维护质数,这样能减少一个log,快上不少. 附上代码: #include <cstdio> #include <algorithm> #include <cmath&g…
5358: [Lydsy1805月赛]口算训练 Time Limit: 5 Sec  Memory Limit: 512 MBSubmit: 318  Solved: 105[Submit][Status][Discuss] Description begin.lydsy.com/JudgeOnline/upload/201805.pdf Input   Output   Sample Input   Sample Output   HINT   Source 鸣谢claris提供 分析: 首先…