关注
元素分裂第三题,通过率60
let n = read_line() - 0;
let nums = read_line().split(" ").map((item) => parseInt(item));
nums.sort((a,b) => a-b);
let max = Math.max(...nums);
let dp = new Array(Math.pow(10,5)).fill(Math.pow(10,6));
dp[0] = -1;
dp[1] = 0;
dp[2] = 1;
dp[3] = 2;
dp[4] = 3;
for (let i = 5;i <= max;i++) {
let arr = getYinZi(i);
for (let j = 1;j < arr.length - 1;j++) {
dp[i] = Math.min(dp[i],1 + dp[arr[j]] + dp[i / arr[j]]);
}
dp[i] = Math.min(dp[i] ,dp[i - 1] + 1);
}
let res = 0;
for (let item of nums) {
res += dp[item];
}
console.log(res);
function getYinZi(num) {
let res = new Set();
for (let i = 1;i * i <= num;i++) {
if(num % i == 0) {
res.add(i);
res.add(num / i);
}
}
let arr = Array.from(res);
arr.sort((a,b) => a-b);
return arr;
}
查看原帖
1 评论
相关推荐
07-11 13:36
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届的你们有几段实习? #
9332次浏览 157人参与
# 你后悔自己读研吗? #
5757次浏览 151人参与
# 你被哪些公司秒挂过? #
14017次浏览 157人参与
# 你认为哪些项目算烂大街? #
5697次浏览 145人参与
# 如何提高实习转正率? #
6435次浏览 127人参与
# 月薪多少能在一线城市生存 #
6655次浏览 137人参与
# 你以为的实习VS真实的实习 #
7686次浏览 107人参与
# 找工作时的取与舍 #
80849次浏览 574人参与
# 最难的技术面是哪家公司? #
4394次浏览 48人参与
# 你小时候最想从事什么职业 #
101955次浏览 1758人参与
# 机械校招之路总结 #
91990次浏览 1888人参与
# 如果可以,你希望哪个公司来捞你 #
107854次浏览 534人参与
# 你想留在一线还是回老家? #
49442次浏览 513人参与
# 选择和努力,哪个更重要? #
85620次浏览 745人参与
# 秋招拿一个offer可以躺平吗 #
144121次浏览 927人参与
# 许愿池 #
291835次浏览 2875人参与
# 新凯来求职进展汇总 #
40633次浏览 107人参与
# 大厂面试初体验 #
16483次浏览 107人参与
# 如果公司给你放一天假,你会怎么度过? #
18017次浏览 129人参与
# 选完offer后,你后悔学本专业吗 #
48106次浏览 242人参与