USACO-Section2.1 Healthy Holsteins
来源:互联网 发布:为什么要用react.js 编辑:程序博客网 时间:2024/05/17 07:23
2017-8-15
题目描述
1.喂给牛的饲料的种数最少2.所需的饲料剂量最少3.输出饲料序号最小的
解答
我用的是dfs求出所有情况1.最大种数从1开始到n,若当前种数有满足条件的,就是他了,break即可2.每次k从1开始为了节省数组r的空间3.set函数!!!
代码
/*ID: 18795871PROG: holsteinLANG: C++*/#include<iostream>#include<fstream>#include<cstring>using namespace std;const int M = 25,N = 15;ifstream fin("holstein.in");ofstream fout("holstein.out");int x[M+1],y[N+1][M+1]; //initint s[M+1]; //sum:nowint r[10000][N+1]; //type:nowbool f[N+1],res=false;int now,m,n,sum=0,k=1,qq;bool flag(){ //判断当前是否符合条件 for (int i=1;i<=m;i++){ if (s[i]<x[i]) return false; } return true;}int fun(){ //求出当前所需的饲料剂量 int res=0; for (int i=1;i<=m;i++){ res+=s[i]; } return res;}void cal(int j){ for (int i=1;i<=m;i++){ s[i]+=y[j][i]; }}void mul(int j){ for (int i=1;i<=m;i++){ s[i]-=y[j][i]; }}void set(int p){ for (int i=1;i<=k;i++){ for (int j=0;j<p;j++){ if (!r[i][j]){ r[i][j]=r[i-1][j]; } } }}void dfs(int step,int cnt){ if (step==n+1){ k++; return ; } if (cnt==now){ set(cnt); if (flag()){ int fun_res=fun(); if (sum==0||(sum!=0&&fun_res<sum)){ qq=k; sum=fun_res; } res=true; } k++; return ; } for (int i=step+1;i<=n;i++){ if (!f[i]){ cal(i); r[k][cnt]=i; f[i]=true; dfs(i,cnt+1); f[i]=false; mul(i); } }}void show(int p){ int i; fout<<now<<" "; for (i=0;i<now-1;i++){ fout<<r[p][i]<<" "; } fout<<r[p][i]<<endl;}int main(){ int i,j; fin>>m; for (i=1;i<=m;i++){ fin>>x[i]; } fin>>n; for (i=1;i<=n;i++){ for (j=1;j<=m;j++){ fin>>y[i][j]; } } for (i=1;i<=n;i++){ if (res) break; now=i; k=1; memset(s,0,sizeof(s)); memset(f,false,sizeof(f)); memset(r,0,sizeof(r)); dfs(0,0); } show(qq); return 0;}
阅读全文
0 0
- USACO-Section2.1 Healthy Holsteins
- USACO-Section2.1 Healthy Holsteins [搜索][枚举]
- USACO-Section2.1 Healthy Holsteins【宽度优先搜索/深度优先搜索】
- USACO-cha2-sec2.1 Healthy Holsteins
- USACO 2.1 Healthy Holsteins <0/1枚举>
- 【搜索】【USACO】Healthy Holsteins
- usaco training-Healthy Holsteins
- USACO Healthy Holsteins
- usaco Healthy Holsteins
- [USACO]Healthy Holsteins
- USACO:Healthy Holsteins
- USACO-Healthy Holsteins
- USACO Healthy Holsteins
- USACO 2.1 Healthy Holsteins
- USACO 2.1-Healthy Holsteins
- USACO 2.1 Healthy Holsteins
- usaco Healthy Holsteins
- USACO Healthy Holsteins
- 记一次晋升答辩
- 最小代价生成树
- 阳历以及阳历的闰年
- 深入理解Spring框架(一)
- C#打印条码BarTender SDK
- USACO-Section2.1 Healthy Holsteins
- Java8新特性(拉姆达表达式lambda)
- 当你编码时你在做什么:谈编程的本质(一)状态机
- 廖雪峰《python3 基础教程》读书笔记——第十五十六十七章
- 技术文章 | 循环递归RNN_序列建模套路深(深度学习入门系列之十三)
- socket C/C++编程(5)服务器端允许用户连接之listen()函数
- Oracle优化SQL技法—降龙十八掌
- 使用Eclipse + OpenCV + C++ 环境搭建(二)
- 【Unity知识搬运】任意两张带透明图像的一种形状过渡效果