DP
Sstee1XD
这个作者很懒,什么都没留下…
展开
-
HDU - 6006 Engineer Assignment(状压dp)
题目链接 题意:有n个任务,完成这些任务需要一些领域的知识。有m个工程师,每个工程师都有一些自己会的领域。每个工程师只能选择一个任务,若参与这项任务的工程师具备了完成所需的所有知识,这项任务则被完成。问最多能完成几个任务。 题解:题目给的n和m都很小,所以想到了状压DP去实现。dp[i][j]表示前i个任务在使用工程师j状态下最多能完成的任务个数。在维护dp状态之前,要额外跑一遍来确定能完成第i个任务的方案,用于最后的状态转移。 #include <bits/stdc++.h> using na原创 2020-10-27 20:34:40 · 149 阅读 · 0 评论 -
Codeforces Round #677 (Div. 3) F. Zero Remainder Sum (DP)
题目链接 题意 :给你一个n∗mn*mn∗m的矩阵,每行最多可以选择m2\frac{m}{2}2m个元素,将它们的权值加起来,问最后可以得到的最大的能被kkk整除的值是多少。 题解 :用dp[i][j]dp[i][j]dp[i][j]来维护1−i1-i1−i行使余数为j时能取到的最大值,每次去更新一行前,先用row[j][l][p]row[j][l][p]row[j][l][p]来维护这一行到第jjj个元素时,在取了lll个元素,余数为ppp的情况下能得到的最大值,再用row[j][l][p]row[j]原创 2020-10-23 15:40:17 · 224 阅读 · 0 评论 -
poj -2686(状压dp)
题面太长了就不放了。 题目给你 n,m,p,a,b 5个数,分别代表票数,点数,边数,起点和终点,每张票有一个权值,每条边有一个权值,每走一条边消耗一张票,代价为边权值/票权值,问是否能从起点走到终点,以及最小的总代价是多少。 刚开始写的时候莫名其妙给自己证明了一下最短路即为最优路,然后把路经边的权值排序后再和票权值匹配,于是就开心地过不了样例,即5/3 + 2/1 < 3/3 + 1/3。dp真的是一生之敌。 #include<cstdio> #include<algorithm原创 2020-07-29 16:11:05 · 247 阅读 · 0 评论 -
CodeForces - 1341D Nastya and Scoreboard(DP+贪心)
Denis, after buying flowers and sweets (you will learn about this story in the next task), went to a date with Nastya to ask her to become a couple. Now, they are sitting in the cafe and finally… Denis asks her to be together, but … Nastya doesn’t give any原创 2020-07-09 19:41:19 · 282 阅读 · 0 评论