4kyu Sum by Factors
4kyu Sum by Factors
题目背景:
Given an array of positive or negative integers
I= [i1,…,in]
you have to produce a sorted array P of the form
[ [p, sum of all ij of I for which p is a prime factor (p positive) of ij] …]
P will be sorted by increasing order of the prime numbers.
题目分析:
本道题简单地说就是如何求出某范围内所有的质数,所以核心的思路就是质数打表如何处理,在OJ题目中,质数打表是很常用的技巧,一般有经典的模板,此处附上我经常用的一个模板,可能和网上流传的版本有些不同,不过时间复杂度上也是O(n)线性级别的:
std::vector<bool> prime(max + 1, true);
for ( int i = 3; i <= max; i++ ) {if ( i % 2 == 0 ) prime[i] = false;
}
for ( int i = 3; i * i <= max; i++ ) {if ( prime[i] ) {for ( int j = i * i; j <= max; j += 2 * i ) {prime[j] = false;}}
}
// 最后的prime数组中,prime[i] 为true代表i为质数
最终AC的代码:
#include <string>
#include <vector>class SumOfDivided
{public:static std::string sumOfDivided(std::vector<int> &lst);
};std::string SumOfDivided::sumOfDivided(std::vector<int> &lst) {int max = 0;for ( int i = 0; i < lst.size(); i++ ) {if ( max < std::abs(lst[i]) ) max = std::abs(lst[i]);}if ( max <= 2 ) return "";std::vector<bool> prime(max + 1, true);for ( int i = 3; i <= max; i++ ) {if ( i % 2 == 0 ) prime[i] = false;}for ( int i = 3; i * i <= max; i++ ) {if ( prime[i] ) {for ( int j = i * i; j <= max; j += 2 * i ) {prime[j] = false;}}}std::string res = "";for ( int i = 2; i <= max; i++ ) {if ( prime[i] ) {long sum = 0;bool flag = false;for ( int j = 0; j < lst.size(); j++ ) {if ( lst[j] % i == 0 ){sum += lst[j];flag = true;}}if ( flag ) res += ('(' + std::to_string(i) + ' ' + std::to_string(sum) + ')');}}return res;
}
4kyu Sum by Factors相关推荐
- pca算法python实现_三种方法实现PCA算法(Python)
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...
- 整体功能大于部分功能之和_功能性思考,第1部分
关于本系列 本系列旨在将您的观点重新定位为实用的心态,帮助您以新的方式看待常见问题并找到改善日常编码的方式. 它探讨了函数式编程的概念,允许在Java语言中进行函数式编程的框架,在JVM上运行的函数式 ...
- 整体功能大于部分功能之和_功能性思考,第3部分
关于本系列 本系列旨在将您的观点重新定位为实用的心态,帮助您以新的方式看待常见问题并找到改善日常编码的方式. 它探讨了函数式编程的概念,允许在Java语言中进行函数式编程的框架,在JVM上运行的函数式 ...
- 【算法】MVP 争夺战
题干:MVP 争夺战题目描述 在星球争霸篮球赛对抗赛中,强大的宇宙战队,希望每个人都能拿到MVP. MVP 的条件是,单场最高分得分获得者,可以并列,所以宇宙战队决定在比赛中,尽可能让更多的队员上场, ...
- python中pca算法_Python使用三种方法实现PCA算法
主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...
- 三种方法实现PCA降维
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...
- pca算法python代码_三种方法实现PCA算法(Python)
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...
- 4kyu Sums of Perfect Squares
4kyu Sums of Perfect Squares 题目背景: The task is simply stated. Given an integer n (3 < n < 109) ...
- 1096 Consecutive Factors (20 分)_24行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Among all the factors of a positive integer N, there may exist se ...
最新文章
- VS2008正式版创建silverlight项目失败的解决办法
- CodeForces-985C Liebig's Barrels
- 我们距离“云”还有多远?
- MyBatis源码分析-2-基础支持层-反射模块-TypeParameterResolver/ObjectFactory
- 利用ionic3进行上一行和左一行不动,中间移动的功能
- Dashboard集群
- python编写命令行框架_python的pytest框架之命令行参数详解(上)
- tomcat最新版本是多少_Tomcat在Windows 10下的安装配置教程
- 中国检测开关行业市场供需与战略研究报告
- LIO-SAM探秘第三章之代码解析(三) --- mapOptmization.cpp (1)
- cuda10.0及其驱动纯净卸载(笔记)
- 英语语法回顾7——状语从句特殊用法
- 幻数java题_java – ConcurrentModificationException的幻数
- 强化学习(二)--让你轻松玩转生成对抗网络(GAN)与生成对抗模仿学习(GAIL)
- 100句正能量的句子经典语句
- Java那些不为人知的特殊方法
- idea编辑jsp页面部分页面变黄绿色并且不提示,解决很简单,设置里边找language injection就ok...
- 模板匹配综述-SSD,BBS,DDIS,CoTM,QATM
- 【半年总结】——2015.08
- 优酷路由宝L1刷Breed和Padavan固件方法
热门文章
- 国内CVPR和图像处理领域的公司和研究机构
- java并发编程--Executor框架
- Git 分支 - rebase 变基
- 在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南
- Thinking in java基础之集合框架
- 《Docker——容器与容器云》:第一章 从容器到容器云
- Matlab制作个人主页
- 一个fork的面试题
- Machine Learning week 7 quiz: Support Vector Machines
- Flask出现Error code 400, message Bad request syntax异常