题目链接:https://vjudge.net/problem/POJ-1042

题意:给n个湖,给出每个湖第一次打捞时鱼的数量f[i],每单位时间鱼减少的数量d[i],从湖i到湖i+1用时t[i],在12×h个单位时间内,求最多能获得多少鱼。在获得鱼数量相同的情况下,选择在湖1呆时间最长的方案,若在湖1呆的时间一样,则选呆在湖2时间最长的方案...输出在每个湖呆的时间和最多获得鱼的数量。

思路:最近3天学校开运动会,下周要去西安邀请赛了,所以最近开始通过刷题复习学过的算法。今天状态真的不怎么好,昨晚睡得不好,上午11点多开了这道题,最开始从DP角度想,想好久也没有头绪,看了网上大部分用贪心写的,也有用dp的,今天累,不想研究dp的思路。。。就用贪心来写把。因为各种原因这题写了一下午,各种找bug,心态爆炸,也不知道是因为状态不好还是题目坑QAQ...

  好吧,回到题目上来。贪心思路很简单,也很巧妙。枚举最多到达湖i,然后用时间h减去中间行走的时间,剩下的时间就是花在钓鱼上的时间啦。不用考虑行走的时间,这时候由贪心策略,每次找当前能钓到最多鱼的湖去钓,而不一定是后面的湖,这里稍微想一想,不难理解。

  再说一下我在写这题时遇到的问题吧QAQ。最开始提交是TLE,我懵逼了。。这数据!这复杂度怎么会T,找好久发现while循环那出现了死循环,因为hh可能<0,这个时候要break。然后就是一直WA,WA了十多发,WA哭。。原因是这组数据:

  2

  1

  0 0

  1 1

  1

  答案是0,但我最终找k时,应该将k初始化为1,再找,不然k是随机的。。累。。

AC代码:

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std; int n,h;
int t[],f[],d[];
int ans1[][],ans2[]; int main(){
while(scanf("%d",&n),n){
for(int i=;i<=n;++i){
ans2[i]=;
for(int j=;j<=n;++j)
ans1[i][j]=;
}
scanf("%d",&h);
h*=;
for(int i=;i<=n;++i)
scanf("%d",&f[i]);
for(int i=;i<=n;++i)
scanf("%d",&d[i]);
for(int i=;i<=n-;++i)
scanf("%d",&t[i]);
for(int i=;i<=n;++i){
int nw[],hh=h;
for(int j=;j<=i;++j){
nw[j]=f[j];
if(j<i) hh-=t[j];
}
if(hh<=) break;
while(hh--){
int Max=nw[],k=;
for(int j=;j<=i;++j)
if(nw[j]>Max){
Max=nw[j];
k=j;
}
nw[k]-=d[k];
if(nw[k]<) nw[k]=;
ans2[i]+=Max;
++ans1[i][k];
}
}
int k=,Max=ans2[k];
for(int i=;i<=n;++i)
if(ans2[i]>Max)
k=i,Max=ans2[i];
for(int i=;i<=n;++i){
if(i!=) printf(", ");
printf("%d",ans1[k][i]*);
}
printf("\n");
printf("Number of fish expected: %d\n\n",ans2[k]);
}
return ;
}

poj1042(贪心+枚举)的更多相关文章

  1. POJ 1018 Communication System 贪心+枚举

    看题传送门:http://poj.org/problem?id=1018 题目大意: 某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m个厂家提供生产,而每个厂家生产的同种设备都 ...

  2. 【搜索】POJ-2718 贪心+枚举

    一.题目 Description Given a number of distinct decimal digits, you can form one integer by choosing a n ...

  3. [APIO2015]巴厘岛的雕塑 --- 贪心 + 枚举

    [APIO2015]巴厘岛的雕塑  题目描述 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有\(N\)座雕塑,为方便起见,我们把这些雕塑从 1 到\(N\)连续地进行 ...

  4. 51nod1475(贪心&枚举)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1475 题意:中文题诶- 思路:看懂题意后,首先想到的是贪心: ...

  5. hdu 4091 Zombie’s Treasure Chest 贪心+枚举

    转自:http://blog.csdn.net/a601025382s/article/details/12308193 题意: 输入背包体积n,绿宝石体积s1,价值v1,蓝宝石体积s2,价值v2,宝 ...

  6. HDU 5303 Delicious Apples (贪心 枚举 好题)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  7. 贪心+枚举/哈希表 HDOJ Trouble

    题目传送门 题意:5个集合,每个集合最多200个数字,问是否每个集合挑一个数加起来和为0. 分析:显然n^5的程序果断超时,甚至n^3logn的二分也过不了.想n^3的方法,既然判断有没有,那么可以将 ...

  8. Delicious Apples (hdu 5303 贪心+枚举)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  9. HDU 5303 Delicious Apples (2015多校第二场 贪心 + 枚举)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

随机推荐

  1. 对React性能优化的研究-----------------引用

    JSX的背后 这个过程一般在前端会称为“转译”,但其实“汇编”将是一个更精确的术语. React开发人员敦促你在编写组件时使用一种称为JSX的语法,混合了HTML和JavaScript.但浏览器对JS ...

  2. 第二篇【Zabbix客户端的完整布署】

    关于Zabbix服务端布署请查看 1.上传zabbix安装包(源码包默认(Server和Agent是一起的)) [root@sms-v2 ~]# ll /root/ -rw-r--r-- root r ...

  3. sublime text 编辑器的操作

    我一直在用的代码编辑器是sublime text,然后总结了一些相关的操作方法. 一 环境操作 1.放大显示比例:Ctrl+ 2.缩小显示比例:Ctrl- 3.分屏:Alt+ Shift +数字    ...

  4. 一些简单题(1)(Source : NOIP历年试题+杂题)

    最近也写了些许题目吧,还是写写博客,捋捋思路. P2216 [HAOI2007]理想的正方形 求一个$a \times b(a,b \leq 10^3)$的矩阵,求出一个$n \times n (n ...

  5. 我不熟悉的list

    其实在日常中,链表的题目做的比较多,但是使用STL自带链表的还是比较少,所以里面的一些API不大熟悉.这边也简要介绍一些. 基本的一些API 先列举的这些和上面几篇用法几乎一样,所以不再累述. 赋值相 ...

  6. AtCoder AGC022C Remainder Game (图论)

    题目链接 https://atcoder.jp/contests/agc022/tasks/agc022_c 题解 大水题一道 就他给的这个代价,猜都能猜到每个数只能用一次 仔细想想,我们肯定是按顺序 ...

  7. RMQ的ST算法

    ·RMQ的ST算法    状态设计:        F[i, j]表示从第i个数起连续2^j个数中的最大值    状态转移方程(二进制思想):        F[i, j]=max(F[i,j-1], ...

  8. 事件总线(EventBus)

    Vue.prototype.$EventBus = new Vue() 不建议用,尽量用vuex,eventbus过于消耗浏览器资源 傻瓜版状态管理 一般的状态传递是在同时显示的情况下,倘若是在不同时 ...

  9. [CSP-S模拟测试]:陶陶摘苹果(线段树维护单调栈)

    题目传送门(内部题116) 输入格式 第一行两个整数$n,m$,如题 第二行有$n$个整数表示$h_1-h_n(1\leqslant h_i\leqslant 10^9)$ 接下来有$m$行,每行两个 ...

  10. 20175215 2018-2019-2 第八周java课程学习总结

    第十五章 泛型与几何框架 15.1 泛型 泛型(Generics)是在JDK1.5中推出的,其主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 15.1.1 泛型类声明 可以使用 ...