12558 - Egyptian Fractions (HARD version)
来源:互联网 发布:python iteritems 3.0 编辑:程序博客网 时间:2024/05/20 05:59
#include<cstdio>#include<cstring>#include<algorithm>#include<set>using namespace std;typedef long long LL;const int maxn=10010;int maxd,t,tt;set<LL> sk;LL ans[maxn],v[maxn];LL gcd(LL a,LL b){ return b?gcd(b, a%b):a;}LL get_first(LL a, LL b){ return b/a + 1;}bool better(int d){ for(int i=d;i>=0;--i) if(v[i]!=ans[i]) return ans[i]==-1||v[i]<ans[i]; return false;}bool dfs(int d,LL from,LL a,LL b){ if(d==maxd){ if(b%a) return false; v[d]=b/a; if(sk.count(b/a)) return false; if(better(d)) memcpy(ans,v,sizeof(LL)*(d+1)); return true; } bool ok =false; for(LL i=max(from,get_first(a,b)); ; ++i){ if(b*(maxd+1-d)<=i*a) break; if(sk.count(i)) continue; v[d]=i; LL b2=b*i; LL a2=a*i-b; LL g=gcd(a2,b2); if(dfs(d+1,i+1,a2/g,b2/g)) ok=true; } return ok;}int main(){ scanf("%d",&t); while(t--) { LL a,b,k,sk0; sk.clear(); scanf("%lld%lld%lld",&a,&b,&k); while(k--) scanf("%lld",&sk0),sk.insert(sk0); for(maxd=0;;++maxd) { memset(ans,-1,sizeof(ans)); if(dfs(0,get_first(a,b),a,b)) break; } printf("Case %d: %lld/%lld=",++tt,a,b); for(int i=0;i<=maxd;++i) { if(i) printf("+"); printf("1/%lld",ans[i]); } printf("\n"); } return 0;}
0 0
- 12558 - Egyptian Fractions (HARD version)
- 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*)
- 12558 - Egyptian Fractions (HARD version)(IDA*算法)
- UVa 12558:Egyptian Fractions (HARD version)(IDA*)
- UVa 12558 Egyptian Fractions (HARD version)--迭代加深搜索
- #UVA12588#Egyptian Fractions (HARD version)(ID_搜索基础题)
- 习题7-7 Egyptian Fractions (HARD version) 埃及分数 (IDA*)
- UVA 12558(p216)----Eg[y]ptian Fractions(HARD version)
- Sicily 2409. Egyptian Fractions
- 【ID搜索】uva12558Egyptian Fractions(HARD version) 埃及分数
- JNI函数调用大全
- 苹果系统 Mac OS X Yosemite 正式版安装程序镜像下载 (10.10 新功能特性总结)
- android自助点单APP(1)Fastjson解析
- linux 命令系列之 变量测试与内容替换(51)
- 虚幻4把小图片组装成大图
- 12558 - Egyptian Fractions (HARD version)
- 字符串的重载
- Linux环境下Apache配置多个虚拟主机挂载多站点同时运行
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- http 错误代码表
- linux下修改oracle数据库的字符集
- RelativeLayout相对布局
- 简单制作 OS X Yosemite 10.10 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)
- 颜色模型的转换公式