Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38796 23级徐泽厚 【S】T1 C++ 运行超时 80 1000 MS 8992 KB 2601 2025-10-29 14:20:55

Tests(8/10):


#include <bits/stdc++.h> #define int long long using namespace std; int x,k,m; vector<int> a; vector<int> as[100005]; int used[100005]; void sch(int n){ vector<int> jr; for (int i=1;i*i<=n;i++){ if (n%i==0){ jr.push_back(i); jr.push_back(n/i); if (i==(n/i)){ jr.pop_back(); } } } sort(jr.begin(),jr.end()); as[n]=jr; used[n]=1; return ; } vector<int> sch2(int n){ vector<int> jr; for (int i=1;i*i<=n;i++){ if (n%i==0){ jr.push_back(i); jr.push_back(n/i); if (i==(n/i)){ jr.pop_back(); } if (jr.size()>m) jr.pop_back(); if (jr.size()==m){ sort(jr.begin(),jr.end()); return jr; } } } sort(jr.begin(),jr.end()); return jr; } signed main(){ scanf("%lld%lld%lld",&x,&k,&m); if (k>=m){ printf("%lld\n",m); exit(0); } a.push_back(x); while (k--){ vector<int> nt; int lsize=0; for (int sss=0;sss<a.size();sss++){ int v=a[sss]; if (v<=100000){ if (used[v]){ for (int ind=0;ind<as[v].size();ind++){ nt.push_back(as[v][ind]); // lsize++; lsize=nt.size(); if (lsize==m) ind=as[v].size(); } if (lsize==m) sss=a.size(); } else{ sch(v); for (int ind=0;ind<as[v].size();ind++){ nt.push_back(as[v][ind]); // lsize++; lsize=nt.size(); if (lsize==m) ind=as[v].size(); } if (lsize==m) sss=a.size(); } } else{ vector<int> ls=sch2(v); for (int ind=0;ind<ls.size();ind++){ nt.push_back(ls[ind]); lsize=nt.size(); if (lsize==m) ind=ls.size(); } } } a=nt; } int sum=0; int lth; if (a.size()<m){ lth=a.size(); } else{ lth=m; } for (int i=0;i<lth;i++){ sum+=a[i]; // printf("%lld ",a[i]); } printf("%lld\n",sum); return 0; }


测评信息: