• Healthy Holsteins


    链接

    分析:因为数据范围比较小,我们可以通过二进制枚举子集,然后找出所需饲料种数最小的并记录下来,同时记录一下路径,也就是字典序最小的

     1 /*
     2     PROB:holstein
     3     ID:wanghan
     4     LANG:C++
     5 */
     6 #include "iostream"
     7 #include "cstdio"
     8 #include "cstring"
     9 #include "string"
    10 #include "vector"
    11 using namespace std;
    12 const int INF=10000;
    13 const int maxn=30;
    14 int V,G;
    15 int v[maxn],g[maxn][maxn];
    16 vector<int> num;
    17 int ans;
    18 void solve(int s){
    19     int res[maxn];
    20     memset(res,0,sizeof(res));
    21     vector<int> yy;
    22     int k=0;
    23     for(int i=0;i<G;i++){
    24         if(s&(1<<i)){
    25             k++;
    26             yy.push_back(i+1);
    27             for(int j=0;j<V;j++)
    28                 res[j]+=g[i][j];
    29         }
    30     }
    31     int flag=0;
    32     for(int i=0;i<V;i++){
    33         if(res[i]<v[i]){
    34             flag=1; break;
    35         }
    36     }
    37     if(!flag&&k<ans){
    38         ans=k;
    39         num.clear();
    40         for(int i=0;i<yy.size();i++){
    41             int tt=yy[i];
    42             num.push_back(tt);
    43         }
    44     }
    45 
    46 }
    47 int main()
    48 {
    49     freopen("holstein.in","r",stdin);
    50     freopen("holstein.out","w",stdout);
    51     cin>>V;
    52     for(int i=0;i<V;i++)
    53         cin>>v[i];
    54     cin>>G;
    55     for(int i=0;i<G;i++)
    56         for(int j=0;j<V;j++)
    57             cin>>g[i][j];
    58     ans=INF;
    59     for(int x=0;x<(1<<G);x++){
    60         solve(x);
    61     }
    62     cout<<ans<<" ";
    63     for(int i=0;i<num.size();i++){
    64         if(i==num.size()-1)
    65             cout<<num[i]<<endl;
    66         else
    67             cout<<num[i]<<" ";
    68     }
    69     return 0;
    70 }
    View Code
  • 相关阅读:
    Spring事务管理
    Java GC算法
    内连接,左连接,右连接
    ThreadLocal相关
    @Autowired 与 @Resource的区别
    spring注解
    BZOJ 1040 ZJOI 2008 骑士 树形DP
    HDU 5575 Discover Water Tank 并查集 树形DP
    BZOJ 3571 画框 KM算法 最小乘积最大权匹配
    ZOJ 3256 Tour in the Castle 插头DP 矩阵乘法
  • 原文地址:https://www.cnblogs.com/wolf940509/p/7144603.html
Copyright © 2020-2023  润新知