牛客國慶集訓派對Day1 C Utawarerumono(暴力)
阿新 • • 發佈:2018-12-13
寫了個擴充套件歐幾里得求最小正整數解果斷錯了
看了下範圍 ,可以暴力 x的範圍應該在1e6之內
#include<bits/stdc++.h> using namespace std; #define ll long long const ll inf=1e18; ll gcd(ll a,ll b) { if(b==0)return a; return gcd(b,a%b); } ll a,b,c; ll p1,p2,q1,q2; int main() { scanf("%lld%lld%lld%lld%lld%lld%lld",&a,&b,&c,&p1,&p2,&q1,&q2); ll m=a,n=b; if(n>m) { swap(n,m); } if(c%(gcd(m,n))!=0) { printf("Kuon\n"); return 0; } ll ans=inf; if(a==0&&b==0&&c==0) { ll x=-p1/(2.0*p2); ll y=-q1/(2.0/q2); for(ll i=-1;i<=1;i++) { for(ll j=-1;j<=1;j++) { ans=min(ans,p2*(x+i)*(x+i)+p1*(x+i)+q2*(y+j)*(y+j)+q1*(y+j)); } } } else { for(ll x=-1000000;x<=1000000;x++) { ll y=(c-a*x)/b; if(a*x+b*y==c) { ans=min(ans,p2*x*x+p1*x+q2*y*y+q1*y); } } } printf("%lld\n",ans); return 0; }