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以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
随机推荐
- Remove Untagged Images From Docker
I've been playing around a lot with docker. It's awesome, and it creates a whole new world of possib ...
- 微信小程序异步处理
直接看问题: 然后看打印的结果: 根据上面两图可以看出,代码上先执行的网络请求,再执行打印的变量,但是从下面打印的结果来看,先出结果的是执行打印变量的函数(aafn函数),再打印出网络请求succes ...
- input取值区间实例
前端开发中经常会遇到 input 取值区间的需求,比如搜索的时候,价格区间,积分值区间 大致的需求为 input 的值必须是正整数,第二个 input 的值必须大于第一个 DOM结构如下: <d ...
- Centos下mongodb的安装与配置
安装MongoDB的方法有很多种,可以源代码安装,在Centos也可以用yum源安装的方法. 1.准备工作 运行yum命令查看MongoDB的包信息 yum info mongodb-org (提示没 ...
- python学习笔记 list
1.list中的任一元素可以是任一类型.可以是混合的,如,前两个字符串后面的是数字.都是可以的. 2.可以用-1表示最后一个元素. 3.注意不要越界. 4.len(mates) 用来计算list的大小 ...
- Regasm
程序集注册工具(Regasm.exe) 读取程序集中的元数据,并将所需的项添加到注册表中.注册表允许COM 客户程序以透明方式创建.NET Framework类.类一经注册,任何COM 客户程序都 ...
- 【Centos】解决设置JAVA_HOME不断失效问题
问题还原: 我们都知道,要修改centos的全局配置,可以在/etc/profile这个文件里面修改,比如,我需要修改JAVA_HOME变量 ,那么一般来说我们只要在其中修改,source 一下就行了 ...
- [搜索]ElasticSearch Java Api(一) -添加数据创建索引
转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...
- 4.2 例题: 统计字符数 poj2247
问题描述 判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多 输入:第 1 行是测试数据的组数 n,每组测试数据占 1 行,是一个由 a-z 这 26 个字符组 成的字符串,每组 ...
- Struts1.2,struts2.0原理分析
struts1原理: 1.首先我们表单提交到action 2.进入到web.xml 3.web.xml拦截*.do 4.交给ActionServlet 5.找到path属性,获得url 6.找到nam ...