码迷,mamicode.com
首页 > 其他好文 > 详细

CF 1244 C - The Football Season

时间:2019-10-14 01:15:04      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:row   main   splay   long   pre   print   枚举   ORC   problem   

C - The Football Season

先考虑求解
\[ x\times w + y\times d=p \]
若存在一组解
\[ \begin{cases} x_0\y_0 = kw + v & (0<v<w)\\end{cases} \]

\[ x_0 \times w + y_0 \times d = p\\Rightarrow x_0 \times w + (kw+v)\times d = p\\Rightarrow x_0\times w + k\times w\times d + v\times d = p\\Rightarrow (x_0+k\times d)\times w + v\times d = p ~~~~~ \]
所以一定存在一组解
\[ \begin{cases} x = x_0 + k\times d\y = v \end{cases} \]
并且由于\(w> d\)


\[ x + y = x_0 + k\times d + v < x_0 + k\times w + v \]
前者比后者更有可能成为答案

所以直接枚举所有的v即可

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,p,w,d;
int main(){
    cin >> n >> p >> w >> d;
    for(ll v=0;v<w;v++){
        if((p - v * d) % w == 0){
            ll x = (p - v * d) / w;
            if(x >= 0 && x + v <= n){
                printf("%lld %lld %lld\n",x,v,n-x-v);
                return 0;
            }
        }
    }
    puts("-1");
    return 0;
}

CF 1244 C - The Football Season

标签:row   main   splay   long   pre   print   枚举   ORC   problem   

原文地址:https://www.cnblogs.com/1625--H/p/11669036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!