zoukankan      html  css  js  c++  java
  • AtCoder Regular Contest 083 C: Sugar Water

    题意

    给你一个空杯子,有4种操作:
    操作1 加100a克的水
    操作2 加100b克的水
    操作3 加c克的糖
    操作4 加d克的糖
    糖的质量不能超过水的质量e/100
    糖和水的总质量不能超过f
    糖的质量不能超过水的质量
    a/100
    在此前提下糖的浓度最大
    输出糖和水的总质量以及糖的质量

    分析

    根据原题数据范围,可以直接三重for循环枚举操作1,2,3的次数.
    坑点在于不能没有水,因此最大浓度下不能加糖时至少要有100a克的水.

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    int main(){
      int a,b,c,d,e,f;
      scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
      int ans1=0,ans2=0;double rate=0.0;
      for(int i=0;i*100*a<=f;++i){
        for(int j=0;j*100*b+i*100*a<=f;++j){
          if(i+j==0)continue;
          int sum=j*100*b+i*100*a;
          int lim=min(sum/100*e,f-sum);
          for(int k=0;k*c<=lim;++k){
    	int l=(lim-k*c)/d;
    	int sugar=l*d+k*c;
    	if(double(sugar)/sum>rate){
    	  rate=double(sugar)/sum;
    	  ans1=sum+sugar;ans2=sugar;
    	}
          }
        }
      }
      if(rate==0)printf("%d %d
    ",100*a,0);
      else printf("%d %d
    ",ans1,ans2);
      return 0;
    }
    
  • 相关阅读:
    NestingQuery
    Repeat
    GenericQuery
    StringOpr
    RHEL5.6 安装 virtualbox
    DNS的资料总结
    drop delete truncate 区别
    Linux Shell命令ulimit的用法
    OSI及TCP/IP的概念和区别
    shell:读取文件的每一行内容并输出
  • 原文地址:https://www.cnblogs.com/liu-runda/p/7533093.html
Copyright © 2011-2022 走看看