2014年1月29日

Jersey Politics

摘要: poj2454:http://poj.org/problem?id=2454题意:给你3*k个数,然后让你分成三堆,使得至少其中的两堆中的数字之和大于500*k。题解:这道题一开始我并不知道怎么做,准备采用随机算法,初始化的时候使其分成3堆,然后每次从每一堆中rand一个数,依次的进行交换,但是交了几版,发现都是wa。最后才知道要用贪心。把数字进行降序排序,然后把前2*k个给两堆,只要前两堆都满足大于500*k,如果不满足,那么对于更小的数的组合就不可能满足了。然后最前两堆进行随机算法每次rand一个,然后相互交换,找到满足条件的即可! 1 #include 2 #include 3 #inc 阅读全文

posted @ 2014-01-29 19:02 天依蓝 阅读(281) 评论(0) 推荐(0) 编辑

Moo University - Financial Aid

摘要: poj2010:http://poj.org/problem?id=2010题意:给你c个点,每个点有两个属性,一个是成为成绩g,一个是资金f,又给你总资金F,然后让你从这c个点中选出n个,这n个点满足两点:1,n个点的资金和不大于总资金F,2:n个点成绩的中位数尽可能的大。题解:这一题开始自己也没有什么思路,看了别人的思路发现那样的做法好巧妙啊。思路:首先按照成绩给c个点进行排序,然后对于每个i,计算出在i之前选出n/2个点,然后在i之后选出n/2个点,然后枚举每个i,选出最大的成绩。对于i之前的,只要选出n/2个点且资金之和最小的点即可,如果连最小的资金之和都满足不了资金和不大于F,则其他 阅读全文

posted @ 2014-01-29 15:02 天依蓝 阅读(883) 评论(0) 推荐(0) 编辑

导航