• C


    原题地址:http://abc074.contest.atcoder.jp/tasks/arc083_a

    Time limit : 3sec / Memory limit : 256MB

    Score : 300 points

    Problem Statement

    Snuke is making sugar water in a beaker. Initially, the beaker is empty. Snuke can perform the following four types of operations any number of times. He may choose not to perform some types of operations.

    • Operation 1: Pour 100A grams of water into the beaker.
    • Operation 2: Pour 100B grams of water into the beaker.
    • Operation 3: Put C grams of sugar into the beaker.
    • Operation 4: Put D grams of sugar into the beaker.

    In our experimental environment, E grams of sugar can dissolve into 100 grams of water.

    Snuke will make sugar water with the highest possible density.

    The beaker can contain at most F grams of substances (water and sugar combined), and there must not be any undissolved sugar in the beaker. Find the mass of the sugar water Snuke will make, and the mass of sugar dissolved in it. If there is more than one candidate, any of them will be accepted.

    We remind you that the sugar water that contains a grams of water and b grams of sugar is 

    100b
    a+b

     percent. Also, in this problem, pure water that does not contain any sugar is regarded as 0 percent density sugar water.

    Constraints

    • 1≤A<B≤30
    • 1≤C<D≤30
    • 1≤E≤100
    • 100AF≤3 000
    • ABCDE and F are all integers.

    Inputs

    Input is given from Standard Input in the following format:

    A B C D E F
    

    Outputs

    Print two integers separated by a space. The first integer should be the mass of the desired sugar water, and the second should be the mass of the sugar dissolved in it.


    Sample Input 1

    Copy
    1 2 10 20 15 200
    

    Sample Output 1

    Copy
    110 10
    

    In this environment, 15 grams of sugar can dissolve into 100 grams of water, and the beaker can contain at most 200 grams of substances.

    We can make 110 grams of sugar water by performing Operation 1 once and Operation 3 once. It is not possible to make sugar water with higher density. For example, the following sequences of operations are infeasible:

    • If we perform Operation 1 once and Operation 4 once, there will be undissolved sugar in the beaker.
    • If we perform Operation 2 once and Operation 3 three times, the mass of substances in the beaker will exceed 200 grams.

    Sample Input 2

    Copy
    1 2 1 2 100 1000
    

    Sample Output 2

    Copy
    200 100
    

    There are other acceptable outputs, such as:

    400 200
    

    However, the output below is not acceptable:

    300 150
    

    This is because, in order to make 300 grams of sugar water containing 150 grams of sugar, we need to pour exactly 150 grams of water into the beaker, which is impossible.


    Sample Input 3

    Copy
    17 19 22 26 55 2802
    

    Sample Output 3

    Copy
    2634 934

    题目意思:在烧杯中放糖和水;使其糖浓度最大;烧杯中不能有没有溶的糖
    解题思路:遍历所有情况;(做的时候完全没有想到)
    代码1:
    #include<iostream>
    #include<string>
    #include<algorithm>
    #include <string.h>
    #include <stdio.h>
    #include <math.h>
    #include <set>
    #include <queue>
    #include <stack>
    #include <map>
     
    using namespace std;
    typedef long long LL;
    const int INF = int(1e9);
     
    double A,B,C,D,E,F;
    double Ai,Bi;
    double maxx1 = -1,maxx2 = 1;
     
    int main()
    {
        cin>>A>>B>>C>>D>>E>>F;
        Ai = A*E; Bi = B*E;
        double tan,kefan,sum;
     
        for(int a = 0;a*A*100<=F;a++)
        for(int b = 0;b*B*100<=F-a*A*100;b++)
        for(int c = 0;c*C<=F-a*A*100-b*B*100;c++)
        for(int d = 0;d*D<=F-a*A*100-b*B*100-c*C;d++)
        {
            tan = c*C+d*D;
            sum = A*a*100+B*b*100+tan;
            kefan = Ai*a+Bi*b;
            //cout<<a<<"->"<<b<<" "<<c<<" "<<d<<endl;
           // cout<<sum<<" "<<tan<<" "<<kefan<<endl;
            if(kefan<tan||sum>F)continue;
     
            if(sum!=0&&tan/sum>maxx2/maxx1){
                maxx1 = sum;
                maxx2 = tan;
            }
        }
        cout<<int(maxx1)<<" "<<int(maxx2)<<endl;
        return 0;
    }
     
  • 相关阅读:
    人在年轻的时候,最需要的能力--吃药的能力
    查分单词-Python
    关于NLP算法工程师的几点思考
    找出只出现一次的数字-Python
    最长连续序列
    二叉树中的最大路径和-Python
    windows:查找端口所对应的进程
    vue项目路由模式为history时打包后部署在nginx 配置访问
    用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server如何处理
    mysql误删root用户
  • 原文地址:https://www.cnblogs.com/a2985812043/p/7743528.html
Copyright © 2020-2023  润新知