loj6165 一道水题(线性筛)】的更多相关文章

题目: https://loj.ac/problem/6165 分析: 最直接的想法就是把1~n的所有数分解质因数,然后每个素数的幂取max 我们首先来看看一共可能有哪些素数? 实际上这些素因数恰好就是1~n内的所有的素数,那ok,线性筛O(n)解决 接下来就是每个p的指数了 对于每个p,最大的其实就是p^k<=n的最大的k,这里直接从小到大枚举k就行了 因为素数的个数有n/ln(n)个,每个素数最多枚举log次,所以总的时间复杂度O(n)…
二次联通门 : LibreOJ #6165. 一道水题 /* LibreOJ #6165. 一道水题 欧拉线性筛 其实题意就是求区间[1, n]所有数的最小公倍数 那么答案就是所有质因子最大幂次的乘积 水题开心.. */ #include <cstdio> #include <iostream> #define Max 100000290 int prime[Max], Count; bool is_prime[Max]; long long Euler_Line_Sieve (c…
一道水题时间限制:1000 ms  |  内存限制:65535 KB 难度:2描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他吗?这个游戏是这样的:有一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0).你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出,大家赶紧写个程…
一道水题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他吗?这个游戏是这样的:有一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0). 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出,大家赶紧…
题目链接 LOJ6165 题目意思其实就是求LCM(1, 2, 3, ..., n) 直接用线性筛求出1到1e8之间的所有质数 然后对于每个质数p,他对答案的贡献为$p^{i}$ 其中$p^{i}$小于等于n且要最大. c数组可能很大,所以我开了bitset... #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i) #define dec(i, a…
\(\\\) \(Description\) 求一个能被\([1,n]\) 内所有数整除的最小数字,并对 \(100000007\) 取模 \(N\in [1,10^8]\) \(\\\) \(Solution\) 一道卡常好题 好吧是我常数太大了 考虑将限制区间内所有数质因数分解,对每一个质因子\(i\)记录下\(t_i\)表示,这个质因子在区间内任意一个数里,出现的最高幂次,那么答案就应该是每个质因子对应的最高幂之积. 质数可以线性筛 注意常数别写丑了 ,考虑如何求每一个质数的最高次幂.考虑…
题目大意:求$lcm(1,2,3,\cdots,n)\pmod{100000007}$,$n\leqslant10^8$ 题解:先线性筛出质数,然后求每个质数最多出现的次数,可以用$\log_in$来求,$i$为该质数.使用换底公式$log_in=\dfrac{\log_2n}{\log_2i}$. 卡点:模数是$10^8+7$,看成$10^9+7$ C++ Code: #include <algorithm> #include <bitset> #include <cstd…
---恢复内容开始--- 题目描述 一天,szb 在上学的路上遇到了灰太狼. 灰太狼:帮我们做出这道题就放了你. szb:什么题? 灰太狼:求一个能被 [1,n] 内所有数整除的最小数字,并对 100000007 取模. szb:这题太水了,就让我小弟来做好了. 然后你就光荣的接受了这个任务. 输入输出格式 输入格式: 一行一个数 n. 输出格式: 一行一个数 ans. 数据范围 n <= 1e8 题目解析 真是凶残,1e8的数据 题目分析难度不大,很容易想到是求1~n的最小公倍数,但要求效率较…
本题算是签到题,但由于赛中花费了过多的时间去滴吧格,造成了不必要的浪费以及智商掉线,所以有必要记录一下坑点 题意:方格从1到n,每一格mjl可以选择吃鱼/巧克力/鸡腿,求走到n格时满足 1.每三格不可重复同一种食物 2.每三格均不同食物时中间格子不可吃巧克力 3.每三格前后两格不可同时吃巧克力 以上三个条件的方案数,n<1e10 太长不看版:打表+快速幂AC 长篇吐槽版 很显然的,设\(dp[n][i][j][k]\),走到第\(n\)格时第\(n-2\)格的食物是\(i\),第\(n-1\)的…
题面 记录一下...连续得两个自然数互质,这题再特判一下1的情况 #include<bits/stdc++.h> using namespace std; int main() { long long n; while(~scanf("%lld",&n)) { )printf("2\n"); else printf(); } ; }…