Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
37442 22级廖思学 【S】T2 C++ 通过 100 308 MS 260 KB 872 2025-03-30 16:28:17

Tests(5/5):


#include<bits/stdc++.h> using namespace std; #define int long long int T,n,m; int U(int a,int b){return (a%b==0?a/b:a/b+1);} int D(int a,int b){return U(a,b)-1;} int cal(int n,int k){ // cout<<"!!!"<<n<<" "<<k<<endl; int g=__gcd(n,k),d=n/g,res=0; for(int p=0;p<k;p++){ int l=U(n*p+1,k-1),r=D(n*(p+1)+1,k); if(l>d)break;r=min(r,d); if(l>r)continue; int x=(l*k-1)%n+1,y=(r*k-1)%n+1; // cout<<p<<" "<<l<<" "<<r<<" "<<x<<" "<<y<<endl; res+=(x+y)*((y-x)/k+1)/2; } return res; } signed main(){ scanf("%lld",&T); while(T--){ int ans=0,K=1; scanf("%lld%lld",&n,&m); for(int k=2;k<=min(n,m);k++){ int res=cal(n,k);//cout<<k<<" "<<res<<endl; if(res>ans){ans=res;K=k;} } printf("%lld\n",K); } return 0; }


测评信息: