[比赛][思维][贪心] CCPC网络赛 HDU6438 Buy and Resell

都是泪啊啊啊啊啊啊啊啊啊啊啊啊啊

汪聚代哥一队打了79,v5的一批Ooooooorz    我们就很惨了,4题,300多名。。据说校前三可以去现场赛,然后我们第六凉凉。。

这个题真的是。。。真的是就差了那么一点,一层窗户纸,捅破就恍然大悟,过不去就死活想不出来了。我甚至也想到了官方题解中的类似于二分图的配置,可是没想到怎么去合并,不对,是我根本就没想合并。。。。。根本就没有意识到传递性啊啊啊啊啊啊啊啊惨的一批

最扯淡的是后面发现是原题。。。虽然有一点不一样,但是能理解原题的话就完全可以做这个了,啊啊啊啊啊啊啊啊啊啊啊啊啊啊

然后lyq差点把1005做出来,沙雕数论题,她会推公式不会实现,我会实现不懂公式,如果我们不是云操作的话可能就做出来了,在线交流真的难受。。。

还有就是1007,赛后看了一眼完全可做的样子,然而最后思维全死在这个A题。。。。决定去cf上刷一波进阶贪心了aaaaaaaa
继续阅读“[比赛][思维][贪心] CCPC网络赛 HDU6438 Buy and Resell”

[CF][贪心][枚举][思维] CF1019A

http://codeforces.com/problemset/problem/1019/A

今天想起来这坑还没填。心情差.jpg

当时比赛想了一个小时dp,然后在最后10min意识到可以枚举最后所需要的人数然后贪心。。可是已经没时间来实现了,然后就果断地凉了。今天直接补了

一开始纠结,主要在于,这个决策既得考虑人数又得考虑钱,有点像背包,就很不好操作。但是实际上,n范围只有3000,所以完全可以枚举人数,在这个固定的条件下去考虑对于一特定的人数x需要多少钱,就很容易了:每次先把人数大于等于x的减到x-1,把减去的人加到党派1的支持者数量里,这个过程中挑最小的那些累计起来。在做完这些工作后就是看有没有达到人数x,如果达到了/超过了就说明行了,虽然超过的话就不是正好x但是我们只关心钱数的最小值,如果没有达到,那么还需要从剩下的所有人里从小到大累计够人数才可以。

我这里只排序1次,然后每次设置used数组表示一个人是不是在第一步里用过了。算是n^2复杂度吧。当然这个题数据貌似很水怎么都能过。。

实现的话还有一个问题就是按照我的写法遇到p为1的时候是不能设置used的,因为这个其实是针对于党派1之外的来说的。。。因为这个wa了一发。 继续阅读“[CF][贪心][枚举][思维] CF1019A”