蒟蒻求助。。。。2.1就卡在这里了
noip吧
全部回复
仅看楼主
level 8
WDL25288428 楼主
一楼献给计算机的灵魂
2012年06月06日 08点06分 1
level 8
WDL25288428 楼主
#include<fstream>
#include<iostream>
/*
ID: 59402471
LANG: C++
TASK: holstein
*/
using namespace std;
int V,G,Min=10000;
int need[30],a[50][50];
int ans[20],path[20],now[20];
ifstream fin ("holstein.in");
ofstream fout ("holstein.out");
void dfs(int deep,int count)
{
int i;
if(deep==G)
{
for(i=0;i<V;i++)
if(now[i]<need[i])
return;
if(count<Min)
{
Min=count;
for(i=0;i<count;++i)
ans[i]=path[i];
}
}
for(i=0;i<V;i++)
now[i]+=a[deep][i];
path[count+1]=deep;//记录路径
dfs(deep+1,count+1);
for(i=0;i<V;i++)
now[i]-=a[deep][i];//当前点不要了
dfs(deep+1,count);
}
int main()
{
int i,j,k;
fin>>V;
for(i=0;i<V;i++)
fin>>need[i];
fin>>G;
for(i=0;i<G;i++)
for(j=0;j<V;j++)
fin>>a[i][j];
dfs(0,0);
fout<<Min;
for(i=0;i<Min;i++)
fout<<" "<<ans[i];
fout<<endl;
fin.close();
fout.close();
return 0;
}
2012年06月06日 08点06分 2
level 12

2012年06月06日 08点06分 3
level 8
WDL25288428 楼主
问题就住在主函数的输入里那个俩个for循环,把任意一个注释掉就没问题,但都在一运行就报错
2012年06月06日 08点06分 4
level 12
试图插楼没有成功...
Orz能做到2.1的
2012年06月06日 08点06分 5
level 8
WDL25288428 楼主
[气愤]急死了。。。。。眼瞅的2.2向我挥手
2012年06月06日 08点06分 6
level 8
WDL25288428 楼主
解决了。。。。。。return没扔
2012年06月06日 10点06分 7
level 8
[打酱油]
2012年06月06日 12点06分 8
1