USACO Section 2.1 Healthy Holsteins
/*
ID: lucien23
PROG: holstein
LANG: C++
*/ #include <iostream>
#include <fstream>
#include <vector>
using namespace std; bool compFun(int x, int y)
{
int temp, i = 0; while (true)
{
temp = 1 << i;
if (temp&x > temp&y)
{
return true;
} else if (temp&x < temp&y)
{
return false;
}
i++;
}
} int main()
{
ifstream infile("holstein.in");
ofstream outfile("holstein.out");
if(!infile || !outfile)
{
cout << "file operation failure!" << endl;
return -1;
} int arrCnt[15] = {1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767}; int V;
infile >> V;
int *minRequire = new int[V];
for (int i=0; i<V; i++)
{
infile >> minRequire[i];
}
int G;
infile >> G;
int **feeds = new int *[G];
for (int i=0; i<G; i++)
{
feeds[i] = new int[V];
for (int j=0; j<V; j++)
{
infile >> feeds[i][j];
}
} int minScoopsCnt = 16;
int minScoops = 0; int *sumVita = new int[V];
int sumScoops;
for (int i=1; i<=arrCnt[G-1]; i++)
{//穷举遍历每一种方案
for (int k=0; k<V; k++)
{
sumVita[k] = 0;
}
sumScoops = 0; for (int j=0; j<G; j++)
{//推断此方案中是否包括饲养类型j(利用移位运算)
int temp = 1 << j;
if ((temp & i) == temp)
{//包括类型j
for (int k=0; k<V; k++)
{
sumVita[k] += feeds[j][k];
}
sumScoops++;
}
} int k;
for (k=0; k<V; k++)
{
if (sumVita[k] < minRequire[k])
break;
}
if (k==V && (sumScoops<minScoopsCnt || (sumScoops==minScoops && compFun(minScoops, i))))
{
minScoopsCnt = sumScoops;
minScoops = i;
}
} outfile << minScoopsCnt;
for (int j=0; j<G; j++)
{
int temp = 1 << j;
if ((temp & minScoops) == temp)
{
outfile << " " << j+1;
}
}
outfile << endl; return 0;
}
USACO Section 2.1 Healthy Holsteins的更多相关文章
- 【USACO 2.1】Healthy Holsteins
/* TASK: holstein LANG: C++ URL: http://train.usaco.org/usacoprob2?a=SgkbOSkonr2&S=holstein SOLV ...
- USACO Healthy Holsteins
首先看题目: Healthy HolsteinsBurch & Kolstad Farmer John prides himself on having the healthiest dair ...
- USACO 2.1 Healthy Holsteins
Healthy HolsteinsBurch & Kolstad Farmer John prides himself on having the healthiest dairy cows ...
- 洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
P1460 健康的荷斯坦奶牛 Healthy Holsteins 题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保 ...
- P1460 健康的荷斯坦奶牛 Healthy Holsteins
P1460 健康的荷斯坦奶牛 Healthy Holsteins 题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保 ...
- USACO Section2.1 Healthy Holsteins 解题报告 【icedream61】
holstein解题报告 --------------------------------------------------------------------------------------- ...
- USACO Healthy Holsteins DFS
使用排列组合,遍历所有可能的情况C(1)+C(2)+C(3)……C(n)= 2^G种组合 数据规模不大,暴力过去最多也就是2^15 = 23768种情况 所以就暴力咯,不过还是Debug了一会 Sou ...
- USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)
usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...
- 洛谷P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
随机推荐
- Virtual
Virtual 作用: 允许在派生类中重新定义与基类同名函数并且可以通过其类的指针或引用来访问基类何派生类的同名函数. 1. 概述简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少 ...
- c#params应用
params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允 ...
- ANDROID基础ACTIVITY篇之ACTIVITY的生命周期(二)
除了Activity的七大生命周期方法外外,还有两个相当重要的方法需要大家熟记那就是onSavelnstanceState()和onRestoreinstanceState(). 那么什么时候会调用这 ...
- Python的__main__.py用法
[背景] 在看flower的时候看到__main__.py文件,不知道具体做什么用? 故先进行测试看看. [测试代码] 测试代码目录结构如下: . `-- test |-- __init__.py | ...
- java的String构造对象的几种方法以及内存运行过程
String类创建对象的方法可以分为以下三种 1.String a = "123"; 2.String b = new String("123"); 3.Str ...
- Vue-cli创建项目从单页面到多页面2-history模式
之前讲过怎样将vue-cli创建的项目改造成多页面(vue-cli创建项目从单页面到多页面),今天说一下怎样在多页面的前提下使用history模式. 如何使用history模式 因为vue默认的has ...
- 通用Adapter设计,SparseArray+泛型+回调的使用
看到题目,我相信聪明的各位已经有一定想法了. 一个Adapter,最简单的优化就是使用泛型,他可以省去非常多的代码,不过在此之上,我们还可以继续优化,优化他的好基友是:ViewHolder. 在过去, ...
- bootstrap_table_class表格样式实例
<div class="container"> <h2>表格</h2> <!--table标签级别的样式说明如下: ----.table ...
- 从MVC到Ajax再到前后端分离的思考
前言 一位小妹去面试前端,前端leader问了"什么是ajax?",答:"接收后台的数据,然后然后自己填充和渲染样式":一位小哥去面试后台,技术经理问了&quo ...
- python_day06(ip代理池)
from urllib.request import Request, ProxyHandler from urllib.request import build_opener from bs4 im ...