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<<30
int 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;