Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
37070 22级廖思学 【S】T1 C++ 运行超时 40 1000 MS 256 KB 935 2025-03-02 15:22:50

Tests(10/25):


#include<bits/stdc++.h> using namespace std; #define int long long const int N=20; int id,T,m,a,b,c,d,fac[N],ans; bool ch[N]; void cal(){ int cnt=0;int mm=m; for(int i=1;i<=14;i++){ if(ch[i]){mm-=fac[i];cnt+=a+i*b;} } if(mm<0)return; if(mm==0){ans=min(ans,cnt);return;} // cout<<endl; int k=__lg(mm);//cout<<mm<<">>>>>"<<k<<endl; for(int i=k;i>=0;i--){ if((1<<i)&mm){mm-=(1<<i);cnt+=c+i*d;} }//cout<<endl; // cout<<ans<<" "; ans=min(ans,cnt); // cout<<cnt<<" "<<ans<<endl; } void dfs(int i){ if(fac[i]>m){cal();return;} ch[i]=0;dfs(i+1); ch[i]=1;dfs(i+1); } signed main(){ fac[0]=1;for(int i=1;i<=14;i++)fac[i]=fac[i-1]*i; scanf("%lld%lld",&id,&T); while(T--){ scanf("%lld",&m); scanf("%lld%lld%lld%lld",&a,&b,&c,&d); ans=1e17;dfs(1); printf("%lld\n",ans); } return 0; }


测评信息: