zoukankan      html  css  js  c++  java
  • P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins

    由于(1≤v≤25,1le g le 15),数据范围比较小,所以可以枚举出所有饲料的选择情况((2^{15} = 32768)),再取其中字典序最小的,饲料种数最少的方案

    #include<iostream>
    #include<vector>
    
    using namespace std;
    
    const int N = 25;
    
    vector<int> res, backup;
    vector<int> a;
    vector<vector<int>> b;
    int v, g;
    
    void dfs(int u){
        if(u == g){
            // 是否满足奶牛的需要、比较一下字典序、比较一下饲料的个数
            bool flag = 1;
            for(int i = 0; i < v; i ++){
                int sum = 0;
                for(int j = 0; j < backup.size(); j ++)
                    sum += b[backup[j]][i];
                
                if(sum < a[i]) flag = 0;
            }
            
            if(flag){
                if(res.size() == 0 || res.size() > backup.size()) 
                    res = backup;
                else if(res.size() == backup.size())
                    if(res[0] > backup[0]) res = backup;
            }
                    
            return;
        }
        
        
        dfs(u + 1);
        
        backup.push_back(u);
        dfs(u + 1);
        backup.pop_back();
    }
    
    int main(){
        cin >> v;
        
        for(int i = 0; i < v; i ++){
            int t;
            cin >> t;
            a.push_back(t);
        }
        
        cin >> g;
        
        for(int i = 0; i < g; i ++){
            vector<int> c;
            for(int j = 0; j < v; j ++){
                int t;
                cin >> t;
                c.push_back(t);
            }
            b.push_back(c);
        }
        
        dfs(0);
        
        cout << res.size() << ' ';
        for(auto t : res) cout << t + 1 << ' ';
        
        return 0;
    }
    
  • 相关阅读:
    For-Each循环
    test
    网络学习一
    Struts2的interceptor
    Struts2的action解读
    js 读取<select>标签选项 索引
    java项目打jar包
    图解sendRedirect和forward的区别
    导入外部项目无法识别为Web项目无法部署到tomcat
    项目乱码的分析与解决
  • 原文地址:https://www.cnblogs.com/tomori/p/15030021.html
Copyright © 2011-2022 走看看