UVA 12558(p216)----Eg[y]ptian Fractions(HARD version)
来源:互联网 发布:facebook广告优化技巧 编辑:程序博客网 时间:2024/06/11 18:49
#include<set>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define debuusing namespace std;typedef long long LL;const int maxn=10000;set<LL> flag;LL a,b,c,k,cas=0;LL ans[maxn];LL v[maxn];LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%b);}LL better(LL d){ for(LL i=d; i>=0; i--) if(v[i]!=ans[i]) return ans[i]==-1||v[i]<ans[i]; return 0;}LL get_first(LL a,LL b){ return b/a+1;}int dfs(LL d,LL from,LL a,LL b,LL maxd){ if(d==maxd) { if(b%a) return 0; if(flag.count(b/a)) return 0; v[d]=b/a; if(better(d)) memcpy(ans,v,sizeof(LL)*(d+1)); return 1; } int ok=0; from=max(from,get_first(a,b)); for(LL i=from;; i++) { if(b*(maxd+1-d)<=i*a) break; if(flag.count(i)) continue; v[d]=i; LL bb=b*i; LL aa=a*i-b; LL g=gcd(aa,bb); if(dfs(d+1,i+1,aa/g,bb/g,maxd)) ok=1; } return ok;}void solve(){ LL ok=0,maxd; for(maxd=1;; maxd++) { memset(ans,-1,sizeof(ans)); if(dfs(0,get_first(a,b),a,b,maxd)) { ok=1; break; } } for(LL i=0; i<=maxd-1; i++) printf("1/%lld+",ans[i]); printf("1/%lld\n",ans[maxd]);}void init(){ flag.clear(); memset(v,0,sizeof(v));}int main(){#ifdef debug freopen("in.in","r",stdin); freopen("out.out","w",stdout);#endif // debug int t; scanf("%d",&t); while(t--) { init(); scanf("%lld%lld%lld",&a,&b,&k); printf("Case %lld: %lld/%lld=",++cas,a,b); for(LL i=0; i<k; i++) { int x; scanf("%d",&x); flag.insert(x); } solve(); } return 0;}
0 0
- UVA 12558(p216)----Eg[y]ptian Fractions(HARD version)
- 习题7-7 埃及分数(Eg[y]ptian Fractions (HARD version), Rujia Liu's Present 6, UVa 12558)
- UVA 12558 Egyptian Fractions (HARD version) IDA*
- UVa 12558 - Egyptian Fractions (HARD version) [IDA*]
- uva 12558Egyptian Fractions (HARD version)
- uva 12558Egyptian Fractions (HARD version)
- UVA 12558 Egyptian Fractions (HARD version)
- Egyptian Fractions (HARD version) UVA
- Egyptian Fractions (HARD version) UVA
- Egyptian Fractions (HARD version) UVA
- UVa 12558 - Egyptian Fractions (HARD version)(IDA*)
- UVa 12558:Egyptian Fractions (HARD version)(IDA*)
- UVa 12558 Egyptian Fractions (HARD version)--迭代加深搜索
- 12558 - Egyptian Fractions (HARD version)
- 12558 - Egyptian Fractions (HARD version)(IDA*算法)
- 【ID搜索】uva12558Egyptian Fractions(HARD version) 埃及分数
- #UVA12588#Egyptian Fractions (HARD version)(ID_搜索基础题)
- 习题7-7 Egyptian Fractions (HARD version) 埃及分数 (IDA*)
- JNI引起的堆外内存泄漏问题分析
- sqlite各函数详解
- Android Studio 各种快捷键
- JNI用javah命令生成头文件
- 算法导论第三版习题6.4
- UVA 12558(p216)----Eg[y]ptian Fractions(HARD version)
- File
- C++ 线程安全的singleton如何实现
- php和mysql开发防注入函数
- 数据结构算法之排序系列Java、C源码实现(5)--冒泡排序
- Android从一个应用程序启动第三方应用app
- UVA 12563(p274)----Jin Ge Jin Qu [h]ao
- nefu A Simple Math Problem 459 (矩阵连乘)
- 视觉SLAM漫谈