[Vijos1308]埃及分数(迭代加深搜索 + 剪枝)


传送门

迭代加深搜索是必须的,先枚举加数个数

然后搜索分母

这里有一个强大的剪枝,就是确定分母的范围

#include <cstdio>#include <cstring>#define N 100001#define LL long long#define min(x, y) ((x) < (y) ? (x) : (y))#define max(x, y) ((x) > (y) ? (x) : (y))int n, flag, best = 9999999;int ans[N], s[N] = ;inline void dfs(LL a, LL b, int k)if(k > n) return;l = max(s[k  1] + 1, b / a);r = min(best  1, b * (n  k + 1) / a);for(i = l; i <= r; i++)if(a * i >= b)}int main()for(i = 1; i <= n; i++)printf("%d ", ans[i]);return 0;}

  



上一篇:[POJ1741]Tree(点分治模板)

下一篇:[luoguP2805] [NOI2009]植物大战僵尸(网络流)


搜索与剪枝 迭代加深搜索
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图