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 }
  • 相关阅读:
    学习再学习···
    Verilog中文件输入与输出任务实例解析(转载)
    入门实验——流水灯
    论文的参考文献
    Testbench新接触(学习笔记)
    Verilog再接触 问题集
    verilog 语句不可综合和可综合汇总
    关于modelsim 6.4a遇到的问题
    DevExpress.XtraEditors.GridLookUpEdit 隐藏列
    Sql 计算一个词出现的次数
  • 原文地址:https://www.cnblogs.com/fx1998/p/12672042.html
Copyright © 2011-2022 走看看