摘要: 我是用暴力过的,虽然网上说刘汝佳出的这道题考的是堆,我不太懂,。。用暴力时间复杂度高一些,但是一样能过所要注意的就是周期问题,因为只要同时存在某一天超过一头牛产奶量最小,就不会杀牛,而每头牛的周期和每天产奶量都不一样,我一开始用周期最长的做指标,如果超过这个指标还没有牛被杀,说明状态稳定,输出。。。但是这样是WA的。。。正确的周期应该是所有牛的周期的最小公倍数(也可以超过最小公倍数,但无疑最小公倍数是最优的),这也给了我一些新启发,周期不同的时候把所有可能性都走完,就是最小公倍数#include #include #include using namespace std;struct node 阅读全文
posted @ 2014-01-20 17:35 KRisen 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 这个题目我昨晚看到的,没什么思路,因为马里奥有boot加速器,只要中间没有城堡,即可不耗时间和脚力,瞬间移动不超过L距离,遇见城堡就要停下来,当然不能该使用超过K次。。。我纠结了很久,最终觉得还是只能写个BFS,剪了下枝,不出意料还是TLE。。。后来还是找的别人博客看了一下。。。其实之前也做了好多DP,也应该能想到,既然加速器可以用k次,则,每个点都有k个状态,通过DP,把各个状态进行下取优,就可以了。。。这不得不让我对DP有了些新的理解,DP在状态转移的时候,就好像最短路里面的松弛操作,或者二者只是外表的不同,本质是遵循一个道理。当然在DP之前还需要一些处理首先用个g[][]二维数组把题目所 阅读全文
posted @ 2014-01-20 17:25 KRisen 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 这个题目一看就是用并查集,有N个国家代表,在M行给出两两之间的关系,敌人或者朋友,(当然如果该关系跟已知关系冲突,则输出-1)关系的几个约束条件时这样的在朋友方面,朋友的朋友就是自己的朋友,这个就是并查集。在敌人方面,x和其所有朋友的敌人都是敌人。x和其所有敌人的敌人都是朋友。主要是这个敌人的状态不太好表示,不是一个并查集能做到的,我一开始犯糊涂,直接用个图把x的敌人存贮起来,但是因为每次交新的朋友或者敌人,就要搜索全图,而且要把自己的敌人圈更新到整个朋友圈,这样不仅难以实现,复杂度也是相当高后来就发现一个神级方法,简单易用,即,每个国家都有自己的对立面(实际上不存在),作用是这样的,x的对立 阅读全文
posted @ 2014-01-20 16:41 KRisen 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 这个题目题意简单,但是TLE得哭哭的。。。输入 a b w x c五个数,最终要使得c=x,则 b=b-x,同时 c--;如果b=x的时候,c和a才差距减少1,我一开始的优化是,分别对于两个条件,第一个,直接求出b小于x之前总共能撑几秒,这样直接把c减少就行,。。。对第二个条件,稍微推导一下发现,每一秒b是递增了w-x(题目条件说了w>x),因此也可以直接求出b在满足该条件时能撑几秒,直接加到结果里。。。但是这样的优化显然不够,结果任然是TLE,所以需要更强力的推导于是前面已经说到,c和a只有在第一个条件的时候才会距离缩短1,也就是说从头到尾,第一个条件总共会占用 c-a秒,这个很好理解 阅读全文
posted @ 2014-01-20 16:12 KRisen 阅读(366) 评论(0) 推荐(0) 编辑