题目大意 多组数据,每组数据给出一个正整数 \(n\),请求出一组数 \(a_1\cdots a_m\),满足 \(LCM_{k=1}^ma_k=n\) 且 \(\sum_{k=1}^ma_k\) 最小。

分析 我们以两个数为例进行研究。假定 \(LCM(a,b)=n\) 则如果 \(GCD(a,b)\neq 1\),有 \(LCM(\frac{a}{gcd(a,b)},b)=n\),且 \(a+b>\frac{a}{gcd(a,b)}+b\)。故当且仅当 \(gcd(a,b)=1\) 时最优。而对于多个数的情况,也是当且仅当 \(\prod_{k=1}^ma_k=n\) 时最优。而对于正整数 \(a_1\geq 2,a_2\geq2,\cdots,a_m\geq2\),总有 \(\sum_{k=1}^ma_k\leq \prod_{k=1}^ma_k\)。所以如果可以将 \(n\) 质因数分解为 \(n=\prod_{k=1}^mp_k^{q_k}\)(其中 \(\forall i\in\mathbb{N+},p_i\) 为质数),则当且仅当 \(\forall i\in\mathbb{N+},a_i=p_i^{q_i}\) 时有最优解。

#include<bits/stdc++.h>
using namespace std; typedef long long ll; ll t, tot, n, ans;
map<ll, ll> m; ll QuickPow(ll a, ll b)
{
ll res = 1;
while(b) {
if(b & 1) res *= a;
a = a * a, b >>= 1;
}
return res;
} int main()
{
while(~scanf("%lld", &n) && n) {
m.clear(), ans = 0, tot = 0; for(ll i = 2; i * i <= n && n > 1; ++i)
while(n % i == 0) ++m[i], n /= i;
if(n > 1) m[n] = 1; map<ll, ll>::iterator it = m.begin();
while(it != m.end()) {
ans += QuickPow(it->first, it->second);
++it, ++tot;
} if(tot < 2) ans += 2 - tot;
printf("Case %lld: %lld\n", ++t, ans);
}
}

题解 UVa10791的更多相关文章

  1. 题解:UVA10791 Minimum Sum LCM

    原题 题目大意 输入整数\(n(1\le n<2^{31})\) ,求至少两个正整数,是它们的最小公倍数为$ n$,且这些整数的和最小.输出最小的和. 有多组测试输入,以\(0\)结束. 题解 ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  9. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

随机推荐

  1. 浅谈PHP中pack、unpack的详细用法

    转自:https://segmentfault.com/a/1190000008305573 PHP中有两个函数pack和unpack,很多PHPer在实际项目中从来没有使用过,甚至也不知道这两个方法 ...

  2. [转帖]CNN、RNN、DNN的一般解释

    CNN.RNN.DNN的一般解释 https://www.jianshu.com/p/bab3bbddb06b?utm_campaign=maleskine&utm_content=note& ...

  3. Python中的高性能容器--collections

    集合模块 相对于 Python 中内置的称为链表.集合.字典和元组的默认容器类型来说,集合模块( collection module )提供了高性能的备选方案( alternative ). 简单地看 ...

  4. 【转】python测试框架--doctest

    转自https://my.oschina.net/lionets/blog/268542 doctest 是一个 Python 发行版自带的标准模块.有两种模式可供使用. ##1 doctest 的概 ...

  5. Stack实现

    栈的三种操作算法很简单 STACK-EMPTY(S) 1 if S.top == 0 2    return TRUE 3 else return FALSE PUSH(S, x) 1 S.top = ...

  6. webpack4基础入门操作(二)(讲解下webpack的配置内容)

    前序:我之所以开始写这个系列,是因为我最近出去看了下外面的情况,发现技术更新的脚步太快了.我的技术栈已经完全落伍了. 所以准备今年学习写新的东西,而React.webPack4就是我的第一步.前面我看 ...

  7. 据时间生成唯一序列ID

    据时间生成唯一序列ID /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> ...

  8. vscode入门使用教程(页面调试)

    初次使用vscode时各种不适应,所有需要用到的功能貌似都需要单独安装插件才能用.这让很多初次使用vscode的朋友有点无所适从. 下面本人就带各位朋友学习下如何使用vscode来进行最基本的工作—— ...

  9. 接口的鉴权cookie、session和token

    1.HTTP是无状态协议 什么是无状态?就是说这一次的请求和上一次的请求是没有任何关系的,无法共享信息.好处就是速度快. 2.cookie.session的加入 HTTP请求是无状态的,所以解决共享信 ...

  10. Grafana+prometheus+AlertManager+钉钉机器人

    一.Grafana (1)安装Grafana的Linux环境 在官网下载windows的Grafana的压缩包到指定目录,解压缩Grafana压缩文件到包含当前Grafana版本的文件夹.将该文件夹解 ...