zoukankan      html  css  js  c++  java
  • 【AtCoder Beginner Contest 074 C】Sugar Water

    【链接】h在这里写链接


    【题意】


    让你在杯子里加糖或加水。
    (4种操作类型)
    糖或水之间有一定关系。
    糖和水的总量也有限制。
    问你糖水浓度的最大时,糖和糖水的量。

    【题解】


    写个dfs就好。
    每次有4种选择。
    可以写个记忆化。

    【错的次数】


    0

    【反思】


    在这了写反思

    【代码】

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 3000;
    
    int a,b,c,d,e,f,ans,total;
    int dp[N+10][N+10];
    
    void dfs(int sugar,int water){
        if (dp[sugar][water]!=-1) return;
        dp[sugar][water] = 1;
        if (sugar*100>e*water) return;
        if (sugar+water>f) return;
        if (total==0 || sugar*total>ans*(sugar+water)){
            if (water>0){
                ans = sugar;
                total = sugar + water;
            }
        }
        dfs(sugar,water+100*a);
        dfs(sugar,water+100*b);
        dfs(sugar+c,water);
        dfs(sugar+d,water);
    }
    
    int main(){
        //freopen("F:\\rush.txt","r",stdin);
        memset(dp,255,sizeof dp);
        ios::sync_with_stdio(0),cin.tie(0);
        cin >> a >> b >> c >> d >> e >> f;
        dfs(0,0);
        cout << total << ' '<< ans << endl;
        return 0;
    }
    


  • 相关阅读:
    如何在IDEA中查看Gradle项目的所有依赖关系
    YUYV&YV12&mtk6763
    MTK-shot mode
    Thread中,join()方法
    高通平台常用缩写
    Android.mk用法详解
    HAL层编写规范
    MMU
    Linux设备驱动中断机制
    阻塞和非阻塞I/O
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626010.html
Copyright © 2011-2022 走看看