传送门
迭代加深搜索是必须的,先枚举加数个数
然后搜索分母
这里有一个强大的剪枝,就是确定分母的范围
#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;}
上一篇:[luoguP3953] 逛公园(DP + spfa)
下一篇:[luoguP2495] [SDOI2011]消耗战(DP + 虚树)
搜索与剪枝 迭代加深搜索









