#10022. 「一本通 1.3 练习 1」埃及分数

这篇博客探讨了埃及分数问题的解决策略,重点在于如何寻找最大中最小的分数解。作者提到了在搜索过程中需要注意的最大公约数、搜索状态的定义以及剪枝技巧。文章提供了作者自己的理解性代码和一位大佬的高效代码,供读者参考学习。
摘要由CSDN通过智能技术生成

因为题目实在是太复杂麻烦了,所以我就直接截屏了啊,望谅解) 

先理解一下题目吧(我知道大家都看懂了,那我就不多说了,按老规矩给你们稍微总结一下吧)

  • 首先,这道题我们要求的是最大当中的最小,就是说最后一个的分数的分母是最大的,这个就是最大的,然后我们又要让最大的这个分母最小。这个很关键因为这个关乎到了我们 dfs 当中的判断换个角度想想如果没有这个的话,这道题就很简单了,直接搜索找到加起来的值是相同的就退出。
  • 第二点就是因为这是分数,也就是说它有两部分,这就意味着如果我们直接就用这个分数的值来搜索的话,肯定会出问题:
  1. 你在定义的时候,如果是除不尽的小数怎么办?
  2. 我们的分子分母怎么样枚举,一起加还是说一起减?分开你要怎么折腾?
  3. dfs中的那个当前搜索的层数,分子分母各定义一个还是说分开定义

所以这些都是我们要考虑的,这些看起来很白痴的问题就为我们的搜索起到了一个极为重要的铺垫作用、

  • 最简分数要用gcd的吧(求最大公约数的函数)
  • 用来输出的数组要有吧
  • 如果把dfs看成一棵树的话,这个最大层数和最小层数要有吧
  • <
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值