训练赛20160403

训练赛20160403
5:00:00
 
 
Current Time: 2016-04-03 20:17:54 Contest Type: Public
Start Time: 2016-04-03 12:00:00 Contest Status: Ended
End Time: 2016-04-03 17:00:00 Manager: hrbustacm

A题水题

B题一划就出来,水题

C:   01背包变形,,正常的01背包第一层循环都是枚举背包容量,因为B的范围过大,所以我们枚举价值

    dp[j]=min(dp[j],dp[j-value[i]]+weight[i]);

     我们控制dp中的j为value,毕竟value总和题已给出范围《=5000,可以接受,dp[j],代表在获得价值为j的时候,我的背包的重量是多少,之后我们逆序枚举价值,,,第一个符合背包容量的输出即可

 

E: 暴力,,,我们用队列维护暴力过程中0的个数,当0不够时,我们从前面pop(),维护好0的个数问题和总长度就可以了

G:状压dp,比赛的时候没做出来,刚才单独发了

H:  哈夫曼树的原理,,我们将工人分裂的过程抽象为1棵树,,我们利用优先队列,每次pop出键值最小的就可以了,从叶子往根部一步步构造哈夫曼树,维护最大值,结果根节点的值就是答案(每次

   从两个子节点生成父节点的时候注意加上k值

J: 水  题:判断m奇偶性就出来了

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

posted @ 2016-04-03 20:29  柳下_MBX  阅读(164)  评论(0编辑  收藏  举报