USACO 2.1.4求解

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:14:27
就是它,帮忙把程序给我

新版usaco的2.1.4是这道Healthy Holsteins ,不知道是不是你想问的,不是的话,你把题贴一下。
这道题用dfs做,因为数据量很小,所以枚举所有状态也不会超时。每种饲料有两种选择:选、不选。就按这样搜索枚举所有状态,别忘了回溯。
若还有不明白的地方的话,尽管提,我尽力解答。

你从网上搜一下的话,有很多(要pascal的的话,说一声)
#include "stdio.h"
int v,cow[25],vit[15][25],g,ans[25],min_size,zh[25],t;int can(int cow[],int now[])
{
int i;
for(i=0;i<v;i++)
if(cow[i]>now[i])
return 0;
return 1;
}void serch_zh(int k)
{
int s;
if(k==g)
{
int now[25],i,j;
for(i=0;i<v;i++)
now[i]=0;
for(i=0;i<t;i++)
for(j=0;j<v;j++)
now[j]+=vit[zh[i]][j];
if(can(cow,now)&&t<min_size)
{
min_size=t;
for(i=0;i<t;i++)
ans[i]=zh[i];
}
return;
}
zh[t++]=k;
serch_zh(k+1);
t--;
serch_zh(k+1);
}main()
{
FILE *in,*out;
int i,j;
in=fopen("