标签:script ddl for 最好 等级 pre 表达 out ref
题解:
AC代码:
#include<cstdio> #include<algorithm> #define IN inline #define R register #define ll long long using namespace std; const int N=1e5+10; int n; ll as[N],sa[N];bool flag; IN bool check(ll a,ll b,ll c,ll d){ if(a*d>b*c) return 0; else return 1; } IN void dfs(ll x,ll y,ll f,int d){ if(x<0)return; if(d==1){ if(x==1&&y>=f){ if(y<sa[1]){ flag=1; sa[1]=y; for(int i=n;i>=2;i--) sa[i]=as[i]; } } return ; } for(R ll i=f,g;check(x,y,d,i);i++){ as[d]=i;g=__gcd(x*i-y,y*i); dfs((x*i-y)/g,y*i/g,i+1,d-1); } } int main(){ int x,y; scanf("%d%d",&x,&y); flag=false; sa[1]=1e17; for(int i=1;;i++){ n=i,dfs(x,y,1,i); if(flag){ for(int i=n;i;i--) printf("%lld ",sa[i]); return 0; } } return 0; }
标签:script ddl for 最好 等级 pre 表达 out ref
原文地址:http://www.cnblogs.com/shenben/p/5994758.html