摘要: 题意:有t组测试数据,每组测试数据中有n门功课,第一排完成它们的时间限制,第二排是未在限制的时间内完成的要扣除的分数,然后是需要求扣的分数最少。思路:一开始在想着用dp做,结果没有d出来,于是去看解题报告,发现可以用贪心做,但是我也没有想到思路......是这样的,对分数按从大到小排次序,然后枚举限定的时间,若是某一天没有被标记,就用这一天来完成这一门作业,若是枚举到0了,说明在限定时间内没有哪一天可以完成这门作业,那么就扣除这门课的分数......具体看代码吧:#include<stdio.h>#include<iostream>#include<string. 阅读全文
posted @ 2013-05-15 19:55 紫忆 阅读(2590) 评论(0) 推荐(1) 编辑
摘要: 思路:一开始我的思路是正确,只是尼玛,被这张图上的最优方案误导了。初始思路:在可以占领格子最多的地方放车,然后将已经被占领了的格子标记,再去标记下一个最多的并且未被占领的地方......这样,会是对的,虽然我没有证明;完善的思路:我一开始不确定自己初始思路正确否,也是去参考大牛思路,他是这样想的:从上到下扫描每一行,1、若该行被占领,则去下一行;2、若改行有未被占领的,则在该行最后一个未被占领额各自摆车;然后,这种思路和我的初始思路,都是在 控制格子数最多的地方放车,也就是行末,而我是对整个图思考.......但是代码实现问题,却是大牛的思路更加好....... 阅读全文
posted @ 2013-05-15 19:13 紫忆 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个人想要过河,但是船只有一条,而且每次只能载两个人,给出n个人过河的时间,两个人一起过河的话,按照花时最多的计算,求所有人都过河所花的最少时间。思路:一开始我是想,直接用过河时间最少的那个人每次载一个到对面,然后再回来载剩下的,仔细想想,这样不对。然后思考后发现有两种过河策略:1、用过河时间最少的那个人每次载一个到对面,然后再回来载剩下的;2、用(花时)最少的和次少的循环载人,先是最少的和次少的一起过河,再是最少的回来,然后让最多的载次多的过河,再用次少的回来载人......然后,我在思考的时候,以为只要第二种就可以是最少的,结果错了,然后看别人思路,发现他们是分别用这两种方法过河, 阅读全文
posted @ 2013-05-15 18:15 紫忆 阅读(393) 评论(0) 推荐(0) 编辑