zoukankan      html  css  js  c++  java
  • 蓝桥杯 貌似化学 数学问题

    问题描述
      现在有a,b,c三种原料,如果他们按x:y:z混合,就能产生一种神奇的物品d。
      当然不一定只产生一份d,但a,b,c的最简比一定是x:y:z
      现在给你3种可供选择的物品:
      每个物品都是由a,b,c以一定比例组合成的,求出最少的物品数,使得他们能凑出整数个d物品(这里的最少是指三者个数的总和最少)
    输入格式
      第一行三个整数,表示d的配比(x,y,z)
      接下来三行,表示三种物品的配比,每行三个整数(<=10000)。
    输出格式
      四个整数,分别表示在最少物品总数的前提下a,b,c,d的个数(d是由a,b,c配得的)
      目标答案<=10000
      如果不存在满足条件的方案,输出NONE
    样例输入
    3 4 5
    1 2 3
    3 7 1
    2 1 2
    样例输出
    8 1 5 7
    看到这道题的标签是g背包,以为是dp背包问题,然后开始想背包问题有01背包,完全背包,多重背包,混合背包。g背包是啥QAQ
     

    看了大佬的题解才知道完全是数学问题,参考自https://blog.csdn.net/starlet_kiss/article/details/87077918

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 ll g[4][4];
     5 ll gcd(ll x, ll y) {
     6     if (y == 0) {
     7         return x;
     8     } else {
     9         return gcd(y, x % y);
    10     }
    11 }
    12 int main() {
    13     ll a, b, c;
    14     cin >> a >> b >> c;
    15     for (int i = 1; i <= 3; i++) {
    16         for (int j = 1; j <= 3; j++) {
    17             cin >> g[i][j];
    18         }
    19     }
    20     ll A = a * g[1][2] - b * g[1][1]; ll B = a * g[2][2] - b * g[2][1]; ll C = a * g[3][2] - b * g[3][1];
    21     ll D = b * g[1][3] - c * g[1][2]; ll E = b * g[2][3] - c * g[2][2]; ll F = b * g[3][3] - c * g[3][2];    
    22     ll x = -B * F + C * E; ll y = -D * C + A * F; ll z = -A * E + B * D;
    23     if (x < 0) {
    24         x = -x;
    25         y = -y;
    26         z = -z;
    27     }
    28     if (x < 0 || y < 0 || z < 0) {
    29         cout << "NONE" << endl;
    30         return 0;
    31     }
    32     ll t = gcd(x, y);
    33     t = gcd(t, z);
    34     cout << x / t << " " << y / t << " " << z / t << " " << (x * g[1][1] + y * g[2][1] + z * g[3][1]) / (a * t) << endl;
    35     return 0;
    36 }
  • 相关阅读:
    hdu 5646 DZY Loves Partition
    bzoj 1001 狼抓兔子 平面图最小割
    poj 1815 Friendship 最小割 拆点 输出字典序
    spoj 1693 Coconuts 最小割 二者取其一式
    hdu 5643 King's Game 约瑟夫环变形
    约瑟夫环问题
    hdu 5642 King's Order
    CodeForces 631C Report
    1039: C语言程序设计教程(第三版)课后习题9.4
    1043: C语言程序设计教程(第三版)课后习题10.1
  • 原文地址:https://www.cnblogs.com/fx1998/p/12672042.html
Copyright © 2011-2022 走看看