Minimum Sum LCM(uva10791+和最小的LCM+推理)
Limit:3000MS Memory Limit:0KB 64bit
IO Format:%lld & %llu
题意:输入正整数n,<注意n=2^31-1是素数。结果是2^31已经超int。用long long,>找至少两个数,使得他们的LCM为n且要输出最小的和;
思路:既然LCM是n,那么一定是n的质因子组成的数,又要使和最小,那么就是ans+=[质因子]^[个数]+...;
之前我一直超时,感觉都无语了。
转载请注明出处:
寻找&星空の孩子
题目链接:UVA
10791
也欢迎来我开的专题刷题。
哈哈http://acm.hust.edu.cn/vjudge/contest/view.action?cid=77956#overview
AC代码:
- #include<stdio.h>
- #include<string.h>
- #include<algorithm>
- #include<math.h>
- using namespace std;
- #define LL long long
- LL n,sum;
- inline LL divisor(LL x)
- {
- int t=0,cnt;
- LL tp;
- for(int i=2; i<=sqrt(n); i++)
- {
- cnt=0;
- tp=1;
- if(x%i==0&&i!=n)
- {
- while(x)
- {
- if(x%i==0)
- {
- cnt++;
- x=x/i;
- tp=tp*i;
- }
- else {sum+=tp;break;}
- }
- t++;
- }
- if(!x) break;
- }
- if(x>1){sum+=x;t++;}
- // printf("sum=%lld\n",sum);
- return t;
- }
- int main()
- {
- int ca=1;
- while(scanf("%lld",&n),n)
- {
- sum=0;
- LL m=divisor(n);
- if(sum==0||m==1)sum=n+1;
- printf("Case %d: %lld\n",ca++,sum);
- }
- return 0;
- }
超时代码:
- #include<stdio.h>
- #include<string.h>
- #include<algorithm>
- using namespace std;
- #define LL long long
- LL n,sum;
- inline LL divisor(LL x)
- {
- int t=0,cnt;
- LL tp;
- for(int i=2; i<=x; i++)//这么写,就超时 了。。。。。
- {
- cnt=0;
- tp=1;
- if(x%i==0&&i!=n)
- {
- while(x)
- {
- if(x%i==0)
- {
- cnt++;
- x=x/i;
- tp=tp*i;
- }
- else {sum+=tp;break;}
- }
- t++;
- }
- if(!x) break;
- }
- return t;
- }
- int main()
- {
- int ca=1;
- while(scanf("%lld",&n),n)
- {
- sum=0;
- LL m=divisor(n);
- if(sum==0||m==1)sum=n+1;
- printf("Case %d: %lld\n",ca++,sum);
- }
- return 0;
- }
Minimum Sum LCM(uva10791+和最小的LCM+推理)的更多相关文章
- UVA.10791 Minimum Sum LCM (唯一分解定理)
UVA.10791 Minimum Sum LCM (唯一分解定理) 题意分析 也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断. 代码总 ...
- 数学 - Whu 1603 - Minimum Sum
Minimum Sum Problem's Link ------------------------------------------------------------------------- ...
- Minimum Sum(思维)
Problem 1603 - Minimum Sum Time Limit: 2000MS Memory Limit: 65536KB Total Submit: 563 Accepted ...
- Minimum Sum of Array(map迭代器)
You are given an array a consisting of n integers a1, ..., an. In one operation, you can choose 2 el ...
- Minimum Sum of Array(map)
You are given an array a consisting of n integers a1, ..., an. In one operation, you can choose 2 el ...
- Whu 1603——Minimum Sum——————【单个元素贡献、滑窗】
Problem 1603 - Minimum Sum Time Limit: 2000MS Memory Limit: 65536KB Total Submit: 623 Accepted: ...
- HDU-3743 Minimum Sum,划分树模板
Minimum Sum 被这个题坑了一下午,原来只需找一个最中间的数即可,我以为是平均数. 题意:找一个数使得这个数和区间内所有数的差的绝对值最小.输出最小值. 开始用线段树来了一发果断T了,然后各种 ...
- geeksforgeeks@ Minimum sum partition (Dynamic Programming)
http://www.practice.geeksforgeeks.org/problem-page.php?pid=166 Minimum sum partition Given an array, ...
- HDU 3473 Minimum Sum (划分树)
题意:给定一个数组,有Q次的询问,每次询问的格式为(l,r),表示求区间中一个数x,使得sum = sigma|x - xi|最小(i在[l,r]之间),输出最小的sum. 思路:本题一定是要O(nl ...
随机推荐
- xcode project
An Xcode project is a repository for all the files, resources, and information required to build one ...
- LVS+Keepalived实现高可用负载均衡(转)
LVS+Keepalived实现高可用负载均衡 一.原理 1.概要介绍 如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具 ...
- JsonCpp Documentation
JsonCpp - JSON data format manipulation library JsonCpp Documentation 0.6.0-rc2 Introduction JSON (J ...
- Spring实战笔记2---Bean的装配
创建应用对象之间协作关系的行为通常成为装配,该篇的主要内容有两个,一个Spring装配Bean的几种方式以及Spring表达式,事实上这两者是分不开的,在Spring中,对象无需自己负责查找或者创建与 ...
- pygame系列_游戏窗口显示策略
在这篇blog中,我将给出一个demo演示: 当我们按下键盘的‘f’键的时候,演示的窗口会切换到全屏显示和默认显示两种显示模式 并且在后台我们可以看到相关的信息输出: 上面给出了一个简单的例子,当然在 ...
- Apache James使用的方法及相关心得(转)
经过一番的辛苦努力,终于把James 配置搞定啦,好记性不如烂笔头啊,赶紧记下我的成功经过,以备以后查阅! 首先要做的就是配置域名的MX 记录啦: 先添加一条A记录: mail.abc.com 指向 ...
- UVA 707 - Robbery(内存搜索)
UVA 707 - Robbery 题目链接 题意:在一个w * h的图上.t个时刻,然后知道一些信息,每一个时刻没有小偷的矩阵位置,问哪些时刻能够唯一确定小偷位置.和确定小偷是否已经逃走,假设没逃走 ...
- Visual Studio Code中配置GO开发环境
在Visual Studio Code中配置GO开发环境 一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的 ...
- windows phone 页面导航(6)
原文:windows phone 页面导航(6) 页面导航的例子我们使用的是两个页面,从第一个页面(MainPage)导航到第二个页面(SecondPage),然后可以从第二个页面导航到第一个页面 , ...
- Effective C++规定45 附加代码
这部分是额外的代码的博客.键45条款想法已经实现. #include<iostream> using namespace std; template<typename T> c ...