USACO Section 2.1 Healthy Holsteins
2014-07-24 20:41
435 查看
/* 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 Ordered Fractions
- USACO Section 2.1 Sorting A Three_Valued Sequence - 应该有更好的方法
- USACO Section 2.1 Sorting A Three-Valued Sequence Sorting a Three-Valued Sequence(策略题)
- USACO Section 2.1 Hamming Codes
- USACO Section 2.1 题解
- USACO Section 2.1 Hamming Codes
- USACO Section 2.1 Sorting a Three-Valued Sequence
- USACO Section 2.1: Hamming Codes
- USACO Section 2.1 Hamming Codes
- USACO Section 2.1: The Castle
- USACO Section 2.1: Sorting a Three-Valued Sequence
- USACO Section 2.1: Preface Numbering
- USACO Section 2.1 Healthy Holsteins
- USACO section 2.1 Hamming Codes(直接枚举暴搜)
- USACO Section 2.1 Sorting a Three-Valued Sequence 解题报告
- USACO section 2.1 Hamming Codes(直接枚举暴搜)
- USACO Section 2.1 The Castle (dfs)
- USACO Section 2.1: Prob Ordered Fractions
- USACO Section 2.1
- Usaco Section 2.1 The Castle