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 }
  • 相关阅读:
    2019 web安全基础知识学习
    nc语法和nc木马远程控制主机
    公钥、私钥、hash、数字签名、CA以及验证过程
    A5/1流加密理解和算法实现
    TCP/IP和OSI/RM以及协议端口
    【转】TCP/IP网络协议各层首部
    校园网 虚拟机VMware Linux桥接模式 无法上网 问题
    本地远程查看服务器tomcat 上虚拟机信息
    跨域访问的解决
    混合调用tk.mybatis.mapper 与 自编xml文件 的配置
  • 原文地址:https://www.cnblogs.com/fx1998/p/12672042.html
Copyright © 2011-2022 走看看