poj1042 Gone Fishing 贪心
2012-07-25 01:00
281 查看
//pku1042 参考刘的黑皮书 //http:poj.org/problem?id=1042 //代码: #include<iostream> #include<cstdio> using namespace std; const int MAXN=27; int main() { int n,h; // #ifndef Online_JUDGE // freopen("pku1042.txt","r",stdin); // #endif while(cin>>n,n) { cin>>h; h*=12; int i,j; int f[MAXN]={0}; int d[MAXN]={0}; int t[MAXN]={0}; for(i=0;i<n;i++) cin>>f[i]; for(i=0;i<n;i++) cin>>d[i]; for(i=1;i<n;i++) cin>>t[i]; int now;//表示所在的位置 int num[MAXN][MAXN]; memset(num,0,sizeof(num)); for(i=1;i<=n;i++)//前i个湖,贪心嘛,就是不要走回头路,i是结束点 { int fs[MAXN]; memcpy(fs,f,sizeof(f));//fs为f的副本 h-=t[i-1];//扣掉走路的时间 int time=h; int flag=0;//表示湖的鱼数为0的个数; while(time>0&&flag!=i) { now=0; for(j=1;j<i;j++)//找到鱼数最多的湖 if(fs[j]>fs[now]) now=j; num[i][0]+=fs[now];//加鱼 num[i][now+1]++;//加次数 time--; if(fs[now]>0)//扣掉可钓鱼数/(5min) { fs[now]-=d[now]; if(fs[now]<0)fs[now]=0; } flag=0; for(j=0;j<i;j++) if(fs[j]<=0)flag++; } num[i][1]+=time;//把剩下的时间都花在i湖 } now=1; for(j=2;j<=n;j++) if(num[j][0]>num[now][0]) now=j; for(j=1;j<=n;j++) { cout<<num[now][j]*5; if(j!=n)cout<<", "; } cout<<endl; cout<<"Number of fish expected: "<<num[now][0]<<endl<<endl; } return 0; }
相关文章推荐
- POJ 1042 Gone Fishing 贪心 枚举
- POJ 1042 Gone Fishing(贪心+枚举)
- poj -- 1042 Gone Fishing(枚举+贪心)
- POJ 1042 Gone Fishing(贪心)
- POJ 1042 Gone Fishing(贪心+枚举)
- POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)
- Poj-1042-Gone Fishing-枚举+贪心
- poj 1042 Gone Fishing(贪心)
- poj 1042 Gone Fishing 枚举+贪心
- POJ 1042 Gone Fishing(模拟+贪心)
- POJ - 1042 Gone Fishing(钓鱼)(深搜+贪心)
- POJ-1042-Gone Fishing-枚举+贪心
- poj 1042 gone fishing 贪心+枚举
- POJ 1042:Gone Fishing【贪心】
- POJ 1042 Gone Fishing (枚举+贪心) [12#11#16 daily] #by Plato
- NYOJ 30 && POJ 1042 Gone Fishing(枚举+贪心)
- POJ 1042 Gone Fishing(钓鱼问题)__贪心
- POJ1042-Gone Fishing 贪心经典
- 贪心 - poj1042 Gone Fishing
- poj 1042 Gone Fishing(贪心)