紫书 第7章 暴力求解法 习题7-7 Egyptian Fractions (HARD version) UVA - 12558 解题笔记

埃及分数分解难题:IDA*算法与边缘情况处理
文章讲述了如何使用迭代加深搜索(IDA*)解决关于埃及分数的编程问题,涉及到了复杂的边界条件处理和数据类型选择,以及如何优化搜索过程以找到最小项数的分数分解。

Egyptian Fractions (HARD version) - UVA 12558 - Virtual Judge

https://onlinejudge.org/external/125/12558.pdf

这道题是紫书中的例题里提到的埃及分数。在例题里出现过,那么很自然的就想到这道题求解的方法是必然是迭代加深搜素(IDA*)了。

但是实际做起来的时候,还是发现这道题有点恐怖。最后写出来代码没多少,但是需要考虑的edge case多的要命。导致我一开始想到的很多条件在调试的时候发现并不正确。(看来还是太菜了)

题外话:看到题目标题发现这道题竟然就是紫数作者出的,怪不得会拿来当例题:p

题目大意

给定一个分数 a/b (b%a != 0 且 b > a),要求把这个分数展开成 a/b = 1/c1 + 1/c2 + 1/c3… 的形式。其中 c1 < c2 < c3 ….

要求展开的项数尽量小,项数相等的情况下,最小的项数要尽量小,如果有多解且最小项相等,那么次小的项数要尽量小。此外还会给出一些不能采用的分母,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值