usaco holstein

来源:互联网 发布:python 发送syslog 编辑:程序博客网 时间:2024/06/06 01:02
</pre><pre name="code" class="cpp">#include<stdio.h>int n,m,sj[30],v[20][30],bz[30],sum,min=99999,a[30],b[30];int cmp(){int i;for (i=1;i<=n;i++) if (bz[i]>sj[i]) return 0;return 1;}void dfs(int o){int i,j;if (cmp()) if (sum<min) {min=sum;for (i=1;i<=sum;i++) b[i]=a[i];}for (i=o;i<=m;i++) {for (j=1;j<=n;j++) sj[j]+=v[i][j];sum++;a[sum]=i;dfs(++o);for (j=1;j<=n;j++) sj[j]-=v[i][j];sum--;}}int main(){freopen("holstein.in","r",stdin);freopen("holstein.out","w",stdout);int i,j;scanf("%d",&n);for (i=1;i<=n;i++) scanf("%d",&bz[i]);scanf("%d",&m);for (i=1;i<=m;i++) for (j=1;j<=n;j++) scanf("%d",&v[i][j]);dfs(1);printf("%d ",min);for (i=1;i<min;i++) printf("%d ",b[i]);printf("%d\n",b[min]);return 0;}

1 0