比赛 20140713下午练习 评测结果 AAAAAAAAAA
题目名称 荷斯坦奶牛 最终得分 100
用户昵称 KZNS 运行时间 0.012 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2014-07-13 16:02:19
显示代码纯文本
  1. #include<fstream>
  2. using namespace std;
  3. int v,vl[27]={0},g,sl[17][27]={0};
  4. bool ff[17]={0},edf[17]={0};
  5. int edt=17;
  6. void find(int d,int u);
  7. int main()
  8. {
  9. ifstream fi("holstein.in");
  10. ofstream fo("holstein.out");
  11. fi>>v;
  12. for(int i=1;i<=v;i++)
  13. fi>>vl[i];
  14. fi>>g;
  15. for(int i=1;i<=g;i++)
  16. for(int j=1;j<=v;j++)
  17. fi>>sl[i][j];
  18. find(g,0);
  19. fo<<edt;
  20. for(int i=1;i<=g;i++)
  21. if(edf[i])
  22. fo<<' '<<i;
  23. fo<<endl;
  24. return 0;
  25. }
  26. void find(int d,int u)
  27. {
  28. if(u>=edt)
  29. return;
  30. if(d>0)
  31. {
  32. find(d-1,u);
  33. ff[d]=1;
  34. find(d-1,u+1);
  35. ff[d]=0;
  36. }
  37. else
  38. {
  39. bool fff=1;
  40. int s[27]={0};
  41. for(int i=1;i<=v&&fff;i++)
  42. {
  43. for(int j=1;j<=g;j++)
  44. if(ff[j])
  45. s[i]+=sl[j][i];
  46. if(s[i]<vl[i])
  47. fff=0;
  48. }
  49. if(fff)
  50. {
  51. for(int i=1;i<=g;i++)
  52. edf[i]=ff[i];
  53. edt=u;
  54. }
  55. }
  56. }