- 分享
- @ 2025-10-15 12:07:45
这是一个数学题
首先,我们可以推出\(a+b+c+d=3a+4b\),那么这个时候我们如果枚举a的话,会超时
那么怎么办呢
我们想一下,当\(a>4\)的时候,其实\(3a+4b=3(a-4)+4(b+3)\),那么这个是不优的
所以a只需要枚举到4就可以
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
int gen(int nowA,int x){
int r1=max(nowA+1,x/4);
int r2=max(nowA+1,x/4+1);
if(abs(x-r1*4)<abs(x-r2*4))
return r1;
else
return r2;
}
void solve(){
cin>>n;
int a=1,b=2;
for(int i=1;i<=100;i++){
int j=gen(i,n-3*i);
if(abs(n-3*i-4*j)<abs(n-3*a-4*b))
a=i,b=j;
}
cout<<a<<' '<<b<<' '<<a+b<<' '<<a+b+b<<endl;
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
freopen("jie.in","r",stdin);
freopen("jie.out","w",stdout);
int q=1;
//cin>>q;
while(q--)
solve();
}
树穴体!
0 条评论
目前还没有评论...