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;
    }
    
  • 相关阅读:
    NYOJ-301递推求值
    二叉树
    从c到c++
    NYOJ-93汉诺塔(三)
    历届试题 最大子阵
    最大子序列和最大子矩阵
    【贪心】电视节目安排
    【贪心】线段覆盖
    【贪心】取数游戏
    【贪心】智力大冲浪
  • 原文地址:https://www.cnblogs.com/liu-runda/p/7533093.html
Copyright © 2011-2022 走看看