[USACO] Milking Cows

原创 2011年02月25日 16:44:00

题目叙述的很清晰,关键的一步就是先把输入数据按照开始时间进行排序。

问题就处在这里了,我用的快排,可是1000数据量的测试总也过不去,调试才发现,快排写错了,我只是把开始时间进行了排序,可是相对应的结束时间并没有跟着调整,结果出现了2万多秒的时间间隔!!

唉!本来想用结构体定义一下的,但是一想两个元素也不难就懒的写,结果杯具发生了,代码不清晰不说,还调试了好长时间,得不偿失啊

剩下的程序逻辑不是很难,把所有情况考虑清楚马上就可以AC了~~

 


 

 

 


 

分析的解法一:和我的思路是一样的,它的快排用的是标准库,所以自己要写一个比较函数。。。

分析的解法二:此方法把开始和结束时间全都进行排序,只不过加了一个标记便于区别。比如对于实例排序完成时的结果如下(CSDN居然没有插入表格功能?!我勒个去,无语。。。)

300    700    1000     1200    1500    2100

  1        1         -1          -1          1          -1

于是可以看出有两种情况(k作为数组下标)

1.k=3或5时,恰好刚完成任务,工人数为0,可以求出工作时间

2.k=4时,工人数不为0,前一个任务刚结束,新的任务刚开始,所以可以求出空闲时间

 

此方法我没有想到,总是认为程序AC就万事大吉,也没有认真思考过别的方法。但肯定有大牛想得到的,努力学习啊!^_^

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

USACO 1.2 Milking Cows

Milking Cows  方法1: 动态规划? y

USACO-Section 1.2 Milking Cows[数组模拟]

这道题的基本想法就是,利用数组模拟。开一个布尔型的标记数组,若标记值为true,表明这个时间是至少有一头牛是出于被喂奶的状态的。在输入每个农名的时间段的时候,可以用memset方法直接填充那个时间段。...

USACO1.2.1 Milking Cows(挤牛奶)

Three farmers rise at 5 am each morning and head for the barn to milk three cows. The first farmer b...
  • gswxw
  • gswxw
  • 2013-01-08 16:01
  • 1072

USACO Milking Cows 解题日志

因为过年,加上被窝太温暖,加上……总之好久没有做题了。 先把题目贴上来。 Milking Cows Three farmers rise at 5 am each morning a...

USACO 1.1 Milking Cows

Milking Cows Three farmers rise at 5 am each morning and head for the barn to milk three cows. The...

Usaco 1.2.1 挤牛奶(Milking Cows)

题目:  挤牛奶 来源:  Usaco1.2.1 题目大意:  给定N个人,每个人有个开始时间和结束时间,求最长的无人时间和最长的有人时间 数据范围:  1 ...

USACO Section 1.2.2 Milking Cows

题目 Milking Cows Three farmers rise at 5 am each morning and head for the barn to milk ...
  • kzzhr
  • kzzhr
  • 2013-03-04 22:23
  • 1065

【USACO-Chapter1-1.2】【模拟】Milking Cows

【题目描述】 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300秒(从5点开始计时)给他的牛挤奶,一直到1000秒。第二个农民在700秒开始,在 1200秒结束。第三个农民在1...

USACO 1.2 Milking Cows (归并排序+离散化)

#include #define DEBUG 0 #define TESTCASES 9 #define MAX 5000 int numOfFarmers; int time[MAX][2]; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)