CodeForces - 1512G Short Task(欧拉筛求因子和)
题目链接:点击查看
题目大意:设 d(n)d(n)d(n) 为 nnn 的约束和,更具体的,d(n)=∑k∣nkd(n)=\sum_{k|n}kd(n)=∑k∣nk
现在有 mmm 次询问,每次给出一个 ccc ,需要回答满足 d(n)=cd(n)=cd(n)=c 的最小 nnn
题目分析:预处理一下就可以了,屯一个 O(n)O(n)O(n) 求因子和的板子
代码:
// Problem: G. Short Task
// Contest: Codeforces - Codeforces Round #713 (Div. 3)
// URL: https://codeforces.com/contest/1512/problem/G
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)// #pragma GCC optimize(2)
// #pragma GCC optimize("Ofast","inline","-ffast-math")
// #pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<bitset>
#include<list>
#include<unordered_map>
#define lowbit(x) x&-x
using namespace std;
typedef long long LL;
typedef unsigned long long ull;
template<typename T>
inline void read(T &x)
{T f=1;x=0;char ch=getchar();while(0==isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(0!=isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=getchar();x*=f;
}
template<typename T>
inline void write(T x)
{if(x<0){x=~(x-1);putchar('-');}if(x>9)write(x/10);putchar(x%10+'0');
}
const int inf=0x3f3f3f3f;
const int N=1e7+100;
int pri[N],psum[N],sum[N],cnt;
bool vis[N];
int ans[N];
void P() {sum[1]=1;for(int i=2;i<N;i++) {if(!vis[i]) {pri[cnt++]=i;psum[i]=sum[i]=i+1;}for(int j=0;j<cnt&&pri[j]*i<N;j++) {vis[i*pri[j]]=true;if(i%pri[j]==0) {psum[i*pri[j]]=psum[i]*pri[j]+1;sum[i*pri[j]]=sum[i]/psum[i]*psum[i*pri[j]];break;}psum[i*pri[j]]=pri[j]+1;sum[i*pri[j]]=sum[i]*psum[i*pri[j]];}}
}
int main()
{#ifndef ONLINE_JUDGE
// freopen("data.in.txt","r",stdin);
// freopen("data.out.txt","w",stdout);
#endif
// ios::sync_with_stdio(false);P();memset(ans,inf,sizeof(ans));for(int i=1;i<N;i++) {if(sum[i]<N) {ans[sum[i]]=min(ans[sum[i]],i); }}int w;cin>>w;while(w--) {int n;read(n);printf("%d\n",ans[n]==inf?-1:ans[n]);}return 0;
}
CodeForces - 1512G Short Task(欧拉筛求因子和)相关推荐
- 7809 - 试题J:因数个数 25'(欧拉筛法求因子个数)
链接:http://oj.hzjingma.com/p/7809?view=classic 来源:竞码编程 题目描述 求所有 2 2 2 到 n n n 的整数中,因数个数第 k k k 少的数因 ...
- 牛客 华华给月月出题 (积性函数+欧拉筛+快速幂)
题目描述 华华刚刚帮月月完成了作业.为了展示自己的学习水平之高超,华华还给月月出了一道类似的题: ⊕符号表示异或和,详见样例解释. 虽然月月写了个程序暴力的算出了答案,但是为了确保自己的答案没有错,希 ...
- Enlarge GCD CodeForces - 1034A(欧拉筛+最大公约数)
题意: 给出n个数,删去其中一些使得总的gcd(最大公约数)最大 题目: Mr. F has n positive integers, a1,a2,-,an. He thinks the greate ...
- 欧拉筛+埃式筛求素数
参考:https://blog.csdn.net/nk_test/article/details/46242401 先看一下经典的埃拉特斯特尼筛法: 1 int prime[MAXN],vis[MAX ...
- 欧拉筛 筛法求素数 及其例题 时间复杂度O(n)
埃式筛法尽管不错,但是确实做了许多无用功,某个数可能会被重复的筛好几次,欧拉筛解决了这个方法,下面为代码: 注意理解if(i%prim[j]==0) break; 大佬讲的不错的博客,我就不做复读机了 ...
- cf 1062d 思维 欧拉筛变形
http://codeforces.com/contest/1062/problem/D 题意:给个n ,在n之内 所有(a,b) ,如果存在唯一的x 使a*|x| == b 或者 b* |x| == ...
- 埃氏筛 线性筛(欧拉筛) 算法解析
埃氏晒 埃拉托斯特尼筛法,简称埃氏晒,是一种用来求自然数n以内的全部素数. 他的基本原理是,如果我们要获得小于n的所有素数,那就把不大于根号n的所有素数的倍数剔除. 埃氏晒的原理很容易理解,一个合数, ...
- 素数的线性筛法java,埃氏筛 线性筛(欧拉筛) 算法解析
埃氏晒 埃拉托斯特尼筛法,简称埃氏晒,是一种用来求自然数n以内的全部素数. 他的基本原理是,如果我们要获得小于n的所有素数,那就把不大于根号n的所有素数的倍数剔除. 埃氏晒的原理很容易理解,一个合数, ...
- 欧拉筛(bzoj 2818: Gcd)
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MB Submit: 6707 Solved: 2952 [Submit][Status][Discu ...
最新文章
- CCleaner v5.55.7108 发布,新增软件升级功能
- windows下获取柱面、扇区数,扇区大小
- mysql修改表引擎Engine
- 在Linux系统安装Nodejs 最简单步骤
- Java之String,StringBuffer,StringBuilder
- PHP超实用的函数总结整理
- JS判断当前的浏览器类型
- 2017年关于数据科学的六大预言
- 无法解析类型 java.lang.Object。从必需的 .class 文件间接引用了它
- SAP Spartacus i18n 的文本,和翻译相关的话题:internationalization
- 神经网络算法学习---mini-batch++++mini-batch和batch的区别
- java如何实现信号量_使用二进制信号量实现通用信号量
- [010]Try块和异常处理
- window下 php debug 的安装
- oracle上机题库_Oracle OCP认证考试IZ0-053题库共712题数据库(带中文解析)
- 【网络工程】2、eNSP工具下载与安装
- oracle数据库报12514,Oracle数据库ORA-12514错误的解决办法
- 电机位置、速度检测方法大合集
- Python:PDF转PNG(6行代码搞定)
- 表结构设计器EZDML常见问题(2019年11月整理)