![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划dp
文章平均质量分 52
qq_45928596
这个作者很懒,什么都没留下…
展开
-
洛谷P1174 打砖块——动态规划-背包
动态规划O(nmk)一、定义两个辅助数组 dn【i】【j】和 dy【i】【j】dn【i】【j】 表示在第 i 列打 j 枪最后一枪打在 N 上所得分数dy【i】【j】 表示在第 i 列打 j 枪最后一枪打在 Y 上所得分数二、再定义两个状态转移数组 dpn【i】【j】和 dpy【i】【j】dpn【i】【j】 表示在前 i 列打 j 枪最后一枪打在 N 上所得最大分数dpy【i】【j】 表示在前 i 列打 j 枪最后一枪打在 Y 上所得最大分数#include<bits/stdc++.原创 2021-09-04 17:05:58 · 170 阅读 · 0 评论 -
Necklace HDU-3091(状压DP)
Necklace HDU-3091点击跳转↑题设:多组输入,每个样例输入n(珠子的总数),m(可连接的珠子对的总数)( 1<=n<=18,m<=n*n )。接下来输入m行,每行两个数a和b ( 1<=a,b<=n ),代表编号为a和b珠子是可连接的。问:在m条可连接关系下将这n个珠子串成项链,共有多少种结果。思路:这是有限制条件的问题求解,易发现可使用状压dp。1、定义dp【i】【j】代表将编号为i的珠子串起来,此时的状态为j(j的二进制下有n位,0代表未使用,1代原创 2021-01-28 13:44:00 · 120 阅读 · 0 评论 -
Doing Homework HDU-1074(状压DP)
Doing Homework HDU-1074点击跳转↑题设:T组测试用例,每个样例下,第一行输入n(1<=n<=15)(需要完成的课程作业总数),接下来依次n行输入n个课程作业的名称,截止时间和消耗时间。要求为:需写完所有的作业,完成一个作业需要消耗对应的时间,时间按累计处理单位为天,若超过截止时间,每超过一天完成会扣一分。问:合理安排作业完成的顺序下的最少的扣分数,并输出这个情况下对应的作业完成顺序。(依次输出名称)思路:n不大,且要最优处理,可用位运算暴力枚举各种情况来择优,即原创 2021-01-27 14:26:26 · 171 阅读 · 0 评论 -
最大报销额 HDU - 1864(DP+01背包)
最大报销额 HDU - 1864点击跳转↑题设:多组输入,每组输入一对Q和N,分别代表当前的公费,和需要报销的账单总数。接下来N行,每行开始一个m,接下来是m项物品的名称和价格。求:在所有符合报销规则的账单中,任意组合,让总报销额不超过公费且最大。思路:简单的背包,但是有坑,首先需要读懂题意,账单的报销规则为:1-允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类) ==>单张账单中,只能出现“A”,“B”,“C”三种类型的物品2-每张发票的总额不得超过1000元 ==>原创 2020-12-04 17:37:49 · 418 阅读 · 1 评论 -
Robberies HDU - 2955(DP+01背包+逆向思维+概率转换)
**状态转移方程和初始化:**(dp【v】表示偷得价值为 v 的金钱时不被抓的概率) - **dp【0】= 1**(表示价值为0时小偷必定不被抓) - **dp[j] = max( dp[j] , dp[ j-m[i] ] * p[i] )**原创 2020-12-04 16:34:19 · 278 阅读 · 0 评论