一道ACM题,有兴趣的来看看
A fracion a/b(a < b) can be expressed in the way 1/b1 + 1/b2 + ... + 1/bn. Now can you achieve it and make the sum of b1 to bn minimum?
(一个分数可以表示成1/b1+...+1/bn.现在让你求一个这样的序列使得bi之和最小)
Input and Output
For each case there are tow positive intergers a and b( 0 < a < b <= 100), output the minimum sum.
Sample Input
2 3
3 4
4 15
Sample Output
6
6
16
Hint: 2/3 = 1/3 + 1/3, 4/15 = 1/6 + 1/10
[391 byte] By [
msdn] at [2007-8-14 20:04:55]

# 3 Re: 一道ACM题,有兴趣的来看看
类似于 4 15 这样的输入,我给出这样的思路:
1、求4 和 15 的最大公约数,这里等于1。如果是4和6输入那我们得到2/3。
2、分子分母同乘以分子这里得到 (4*4)/(15*4)=16/60
3、此时分解分子为两整数的和:16可以分为: 1+15 2+14 3+13 4+12 5+11 6+10 7+9 8+8
4、得到这些对中两个部分都可以完全整除分母的对:
6+10 :60/6=10 60/10=6
4+12 :60/4=15 60/12=5
5、找出和最小的:10+6=16 15+5=20 结果为 10 6
....
# 4 Re: 一道ACM题,有兴趣的来看看
如果存在两个数a/b, 使得1/a + 1/b = 1/c则 c < (a + b).
解决这道题目的方法可以:
1. 找出全部1-100之间1/a + 1/b = 1/c 的a/b对.
2. 分解x/y到1/y + 1/y.... + 1/y, 合并这些可以合并的项, 如:1/4+1/4 = 1/2
3. 重复2, 直到不可分解.
4. 求出Sum
没有时间证明这种方法肯定是正确的, 权做抛砖引玉吧.
感觉这道题目的算法应该是O(n)的.
mbcw at 2005-6-21 13:25:54 >
