题目大意:        给你n种维生素,每只牛每天摄入的维生素必须大于等于这n种维生素的量。再让你输入一个数m,代表有m种不同的食物。里面含有的维生素的量。然后要求最少吃哪几种食物可以满足牛的维生素量。如果食物相同,则输出字典序最小的。 解题思路:         最多就15种食物,直接暴力dfs吧。最多也就2^15种状态。不会超时的。。暴力出来的结果就是字典序最小的。 代码:
/*
	ID:yuqichu1 / cchun
	PROB:holstein
	LANG:C++
*/
#include
#include
const int MAX=55;
using namespace std;

int must[MAX],have[MAX][MAX];
int num,n,now[MAX],path[MAX],Min=0x7fffffff;
int ans_p[MAX];
void dfs(int deep,int count)//全部搜完,反正最小的那个就是答案了,接下去的最小都不刷新第一个最小
{
	int i;
	if(deep==n)//结束
	{

		for(i=0;i>num;
	for(i=0;i>must[i];
	cin>>n;
	for(i=0;i>have[i][j];
	dfs(0,0);
	cout<
posted on 2011-11-21 01:13  cchun  阅读(219)  评论(0编辑  收藏  举报