POJ1042解题报告,很简单的贪心枚举
来源:互联网 发布:ssm项目管理系统源码 编辑:程序博客网 时间:2024/06/08 02:12
POJ 1042题目,老师布置的作业,用枚举和贪心来做,其实很简单,只是觉得枚举实在是...一直在想好办法,但是很令人失望,没有想出来,
题目意思是 给出了单位时间(5 min)可以钓到的鱼,每次在一个湖里钓鱼,都会使得下次单位时间钓到鱼数量变少,然后给定了时间。
可以改变钓鱼的位置,但只能从湖i到湖i+1
枚举就是假设从第一个湖开始,到第k个湖的情况,让k从1到N遍历一遍求出最多的鱼
每一次当中就用贪心策略,就是每次选出当前钓鱼数量最多的湖,大家或许有疑问,那样的话,不就有可能先从后面的湖里钓鱼,再从前面的钓鱼吗
其实贪心求出的只是要求时间内的策略
你是可以把贪心解的顺序进行调整到顺序而且不改变它的效益的,是不是很简单?代码附上
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#define Max 105#define Inf 1<<30int fish[Max],dec[Max],cost[Max];int time,n,best,aim[Max];int now,cfish[Max],ctime,record[Max];/*void Print(int *a){ for(int i=0;i<n;i++) printf("%d ",*(a+i)); printf("\n");} Print(cfish); Print(fish);*/int main(){ int i; while(true){ scanf("%d",&n); if(!n) break; scanf("%d",&time); time = time * 12; best = -1; for(i=0;i<n;i++) scanf("%d",&fish[i]); for(i=0;i<n;i++) scanf("%d",&dec[i]); for(i=0;i<n-1;i++) scanf("%d",&cost[i]); for(i=0;i<n;i++){ now = 0; ctime = time; memcpy(cfish,fish,sizeof(int)*n); memset(record,0,sizeof(int)*n); for(int k=0;k<i;k++) ctime = ctime - cost[k]; while(ctime > 0){ ctime --; int ch,num; num = -1; for(int j=0;j<=i;j++){ if(cfish[j]>num){ ch = j; num = cfish[j]; } if(cfish[j]<0){ cfish[j] = 0; } } now = now + num; record[ch]++; cfish[ch] = cfish[ch] - dec[ch]; if(cfish[ch]<0) cfish[ch] = 0; } if(best < now){ best = now; memcpy(aim,record,sizeof(int)*n); } } for(i=0;i<n-1;i++) printf("%d, ",aim[i]*5); printf("%d\n",aim[n-1]*5); printf("Number of fish expected: %d\n\n",best); } return 0;}
0 0
- POJ1042解题报告,很简单的贪心枚举
- poj1042解题报告
- poj1042(枚举+贪心 C语言)
- [解题报告]POJ1042 Gone Fishing
- 【解题报告】poj1042 Gone Fishing
- Gone Fishing(Poj1042)(贪心+枚举)
- poj1042 贪心
- poj1042 贪心
- 简单典型贪心---(解题报告)HDU4310---Hero
- PKU 1042 Gone Fishing 解题报告(枚举 + 贪心)
- 贪心思想题的解题报告
- POJ1328解题报告 (贪心)
- 简单典型贪心---(解题报告)HDU2037---今年暑假不AC
- POJ1042 Gone Fishing(贪心)
- POJ1042 Gone Fishing 贪心
- 【贪心】poj1042 Gone Fishing
- poj1042 Gone Fishing 贪心
- poj1042 动态规划 贪心
- 如何在网站中添加音乐
- 进入公司第五、六个月
- Android开发之listview优化+图片异步加载+避免图片显示闪烁(修改版)
- 搞定C++内存泄漏
- hdu 1048 The Hardest Problem Ever(水题)
- POJ1042解题报告,很简单的贪心枚举
- HeadFirst Python及 python 简单学习记录
- c# 串口通信
- S2SH框架新手搭建详细过程
- liunx的管道命令
- centos下 yum 安装 lamp
- Netstat指令详解
- 索引分裂引发的enq: TX - index contention.
- C++指针和C指针的区别:前者类型要求更严格