USACO Healthy Holsteins DFS
使用排列组合,遍历所有可能的情况C(1)+C(2)+C(3)……C(n)= 2^G种组合
数据规模不大,暴力过去最多也就是2^15 = 23768种情况
所以就暴力咯,不过还是Debug了一会
Source Code:
- /*
- ID: wushuai2
- PROG: holstein
- LANG: C++
- */
- //#pragma comment(linker, "/STACK:16777216") //for c++ Compiler
- #include <stdio.h>
- #include <iostream>
- #include <fstream>
- #include <cstring>
- #include <cmath>
- #include <stack>
- #include <string>
- #include <map>
- #include <set>
- #include <list>
- #include <queue>
- #include <vector>
- #include <algorithm>
- #define Max(a,b) (((a) > (b)) ? (a) : (b))
- #define Min(a,b) (((a) < (b)) ? (a) : (b))
- #define Abs(x) (((x) > 0) ? (x) : (-(x)))
- #define MOD 1000000007
- #define pi acos(-1.0)
- using namespace std;
- typedef long long ll ;
- typedef unsigned long long ull ;
- typedef unsigned int uint ;
- typedef unsigned char uchar ;
- template<class T> inline void checkmin(T &a,T b){if(a>b) a=b;}
- template<class T> inline void checkmax(T &a,T b){if(a<b) a=b;}
- const double eps = 1e- ;
- const int M = ;
- const ll P = 10000000097ll ;
- const int INF = 0x3f3f3f3f ;
- const int MAX_N = ;
- const int MAXSIZE = ;
- int vv[], aa[][];
- int ans[], a[], cur[];
- int v, g;
- void dfs(int n, int w, int a[]){
- int i, j;
- memset(cur, , sizeof(cur));
- for(i = ; i <= a[]; ++i){
- for(int j = ; j < v; ++j){
- cur[j] += aa[a[i]][j];
- }
- }
- for(i = ; i < v; ++i){
- if(cur[i] < vv[i]) break;
- }
- if(i == v){
- if(w < ans[]){
- /*
- for(int i = 1; i <= a[0]; ++i){
- cout << a[i] + 1 << ' ';
- }
- cout << endl;
- */
- for(i = ; i <= a[]; ++i){
- ans[i] = a[i];
- }
- return;
- }
- }
- for(int i = n + ; i < g; ++i){
- ++a[];
- a[a[]] = i;
- dfs(i, w + , a);
- --a[];
- }
- }
- int main() {
- ofstream fout ("holstein.out");
- ifstream fin ("holstein.in");
- int i, j, k, t, n, s, c, w, q;
- fin >> v;
- for(i = ; i < v; ++i){
- fin >> vv[i];
- }
- fin >> g;
- for(i = ; i < g; ++i){
- for(j = ; j < v; ++j){
- fin >> aa[i][j];
- }
- }
- ans[] = INF;
- for(i = ; i < g; ++i){
- a[] = ;
- a[] = i;
- dfs(i, , a);
- }
- fout << ans[];
- for(i = ; i <= ans[]; ++i){
- fout << ' ' << ans[i] + ;
- }
- fout << endl;
- fin.close();
- fout.close();
- return ;
- }
USACO Healthy Holsteins DFS的更多相关文章
- 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以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保 ...
- P1460 健康的荷斯坦奶牛 Healthy Holsteins (简单的dfs)
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- 【USACO 2.1】Healthy Holsteins
/* TASK: holstein LANG: C++ URL: http://train.usaco.org/usacoprob2?a=SgkbOSkonr2&S=holstein SOLV ...
- USACO Section2.1 Healthy Holsteins 解题报告 【icedream61】
holstein解题报告 --------------------------------------------------------------------------------------- ...
- USACO1.6 Healthy Holsteins【dfs/bfs 爆搜】
题目传送门 饲料种数只有15 枚举每种选或不选一共也就只有$2^{15}=32768$ 爆搜可过觉得bfs要快一些? 但是dfs更方便处理字典序 只需要顺序遍历并且先搞选它的情况就可以了 而且在这种规 ...
- USACO Section 2.1 Healthy Holsteins
/* ID: lucien23 PROG: holstein LANG: C++ */ #include <iostream> #include <fstream> #incl ...
随机推荐
- Python学习笔记 (2) :字符串输出、操作、格式化和日期、时间格式化
一.字符串输出及运算 1.常用输出格式及方法 ')#单引号 ")#双引号 """)#三个引号 1234567890 1234567890 1234567890 ...
- FastJson中@JSONField注解使用
最近做项目中,使用了json格式在服务器之间进行数据传输.但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式. 思路: ...
- php 登录实例演示
<pre name="code" class="python">一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主 ...
- C++模板:读入优化
int scan(int &x){ while(c=getchar(),c<'0'||c>'9');x=c-'0'; while(c=getchar(),c>='0'& ...
- C++访问权限的问题
以前一直认为对于类中的private数据成员,只有调用该方法的对象才能更能访问自身的私有成员,其他的类在该成员函数(公共接口)中也无法调用自身的私有成员,今天看到<c++ prime plus& ...
- c++ cout 保留小数点位
需要头文件 <iomanip> 输出时需要用 fixed 和 setprecision() fixed代表输出浮点数,setprecision()设置精度. #include <io ...
- VS2010/MFC说明
此栏目大多数内容转自鸡啄米http://www.jizhuomi.com/ 方便使用对其内容做了少量修改,仅是个人收藏使用,不做其它用途.
- windows下使用python googleprotobuf
首先下载:protobuf-2.5.0.tar.gz 和protoc-2.5.0-win32.zip.两者的版本要对应: 将下载的google protobuf解压,会看到一个python目录,Win ...
- js正则表达式验证字符长度
原理,就是把一个汉字替换为两个字母,来实现长度验证. //js正则验证字符长度 第一种:直接输出长度 alert('1sS#符'.replace(/[^\x00-\xff]/g, 'AA').leng ...
- 创建BDC(Business Data Connectivity Service)
创建Business Data Connectivity http://blog.csdn.net/spfarm/article/details/44015915 创建和使用Business Data ...