cf1512 G - Short Task

题意:

给一个c,求n,使得n的因数和为c

题解:

求因数和的裸题
我们直接预处理所有数的因数和
筛法求因数和
讲解博客

代码:

埃式筛nloglog(1e7) 1500+ms

#include<bits/stdc++.h>
#define debug(x,y) printf("%s = %d\n",x,y);
typedef long long ll;
using namespace std;
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w;
}
const int maxn=1e7+9;
ll p[maxn];
ll num[maxn];
int main()
{num[0]=0;memset(p,-1,sizeof(p));for(int i=1;i<=maxn;i++){for(int j=i;j<maxn;j+=i){num[j]+=i;//i是j的因子 }}for(int i=1;i<maxn;i++){if(num[i]>maxn)continue;if(p[num[i]]==-1){p[num[i]]=i;}} int t;t=read();while(t--){int c;c=read();cout<<p[c]<<endl;}return 0;
}

线性筛:

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=1e7+5;
typedef int LL;
inline LL read(){LL x=0,f=1;char ch=getchar();   while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
int l,r;
int prime[maxn],f[maxn],v[maxn],cnt;
//f[i]:i的因数和,v[i]:i的最小质因数p
bool vis[maxn];
int ans[maxn];
void Euler()
{ans[1]=1;for(LL i=2;i<=r;i++){if(!vis[i]){prime[++cnt]=i;f[i]=v[i]=i+1;//i是质数 vis[i]=1;}for(LL j=1;j<=cnt&&prime[j]<=r/i;j++){vis[i*prime[j]]=1;if(i%prime[j]==0){v[i*prime[j]]=v[i]*prime[j]+1;f[i*prime[j]]=f[i]/v[i]*v[i*prime[j]];break;}else{v[i*prime[j]]=prime[j]+1;f[i*prime[j]]=f[i]*f[prime[j]];}}}
}
int main(){memset(ans,-1,sizeof(ans));r=1e7+5;Euler();for(LL i=1;i<=r;i++){if(f[i]>1e7) continue;if(ans[f[i]]==-1){ans[f[i]]=i;}}int t;scanf("%d",&t);while(t--){int x;scanf("%d",&x);printf("%d\n",ans[x]);}return 0;
}

cf1512 G - Short Task相关推荐

  1. CodeForces - 1512G Short Task(欧拉筛求因子和)

    题目链接:点击查看 题目大意:设 d(n)d(n)d(n) 为 nnn 的约束和,更具体的,d(n)=∑k∣nkd(n)=\sum_{k|n}kd(n)=∑k∣n​k 现在有 mmm 次询问,每次给出 ...

  2. 3、深入理解计算机系统笔记:程序的机器级表示

    1.Intel现在称其指令集为IA32,即Intel 32位体系结构(Intel Architecture 32-bit),这个处理器也俗称为"x86". 2.Linux使用了平面 ...

  3. 性能调优之综合篇 - Linux系统性能监控和故障排查利器Sysdig

    Sysdig绝对是可以跟SystemTap相媲美的工具,都是系统故障排查的利器,不论是开发人员还是运维人员都必须要掌握的一个工具.今天先介绍一下Sysdig的一些特性.官网上说Sysdig是Strac ...

  4. Interview QA-COBOL COBOL II

    Q1) Name the divisions in a COBOL program ?. A1) IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA ...

  5. 【RST笔记6】scheduler

    Define and Goal Scheduling is the act of choosing which event to process at a given time (which task ...

  6. 机器人操作持续学习论文(1)原文阅读与翻译——机器人操作中无灾难性遗忘的原语生成策略学习

    Primitives Generation Policy Learning without Catastrophic Forgetting for Robotic Manipulation 1机器人操 ...

  7. 综述系列 | 多标签学习的新趋势

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 随着Deep learning领域的不断发展,我们面对的问题 ...

  8. 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui

    用户界面编程,即平时说的GUI(Graphical User Interface)编程,那些带有按钮.文本.输入框的窗口的编程 EasyGui是一个非常简单的GUI模块,一旦导入EasyGui模块,P ...

  9. 几种颜色模型的转换公式

    from: 几种颜色模型的转换公式 在做图像处理时,我们一般采用的是RGB空间,但是在某些特殊情况下,我们也会用到其他的颜色空间.本文主要介绍一些常见的颜色空间的概念和转换公式. 颜色的实质是一种光波 ...

最新文章

  1. Cassandra 2016/00
  2. sql int 比较_高质量SQL的30条建议 建议你收藏
  3. rust为什么显示不了国服_AWS偏爱Rust,已将Rust编译器团队负责人收入囊中
  4. flask 模板 php,Flask四之模板
  5. matlab title多个标题_MATLAB中的直方图处理及均衡化
  6. 页面那些位置是投放广告的最佳位置
  7. 北大教授:到底什么才是有效的教育?
  8. drill 数据库查询方式简单说明
  9. JS:ES10新特性
  10. windows 7系统报错txupd.exe
  11. 【协议】3、HTTP 协议入门
  12. pywinauto简单示例
  13. linux cuda 编程指南,CUDA编程指南阅读笔记
  14. 【线代】相似矩阵中特征根的求法:特征方程、一般方程为什么求得的特征根含义不同?
  15. 用正则表达式验证邮箱、密码、QQ号、手机号、身份证号
  16. 接口测试需要怎么做?
  17. linux 查看策略路由,Linux下的策略路由。
  18. 日常交通工具日语词汇
  19. ubantu 安装 mosquitto时 connection refused 的解决办法
  20. AI对项目管理的影响

热门文章

  1. 一分钟教你用Excel从统计局抓数据!
  2. 程序猿的双十一最佳攻略
  3. angular的html引入js,在AngularJS中的文件夹中加载JavaScript和CSS文件
  4. 巴比伦算法求平方根c语言,巴比伦算法求平方根
  5. 索尼服务器维护时间,索尼云服务器
  6. linux tomcat8 启动慢,Linux系统下Tomcat8启动速度很慢的解决方法
  7. 计算机技术题目,计算机技术题目.doc
  8. 计算机基础知识 pdf答案,计算机基础知识练习 答案版.pdf
  9. .net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...
  10. python 为什么动态语言图片_聊聊动态语言那些事(Python)