动态规划
文章平均质量分 92
Azir丶
ACM
展开
-
HDU-3247 Resource Archiver (AC自动机+最短路+状压DP)
题目链接 #include <bits/stdc++.h> using namespace std; const int MAXN = 6e4 + 10; vector<int> vec; // AC自动机 queue<int> q; //BFS队列 const int AlphaSize = 2; //字符集大小 inline int getID(char ch) //字符转整数下标 { return ch - '0'; } int T原创 2020-12-02 22:41:44 · 244 阅读 · 0 评论 -
HDU 4758 Walk Through Squares (AC自动机+DP)
题目链接 题意简化后,给定两个模式串(仅包含字母‘D’和‘R’),然后用m个字母‘D’和n个字母‘R’组成长度为(m+n)且可以同时匹配两个模式串的文本串的方案数。 #include <bits/stdc++.h> using namespace std; const int MAXN = 210; inline int getId(char ch) { if (ch == 'D') return 0; return 1; } queue<int> q原创 2020-11-29 16:17:15 · 88 阅读 · 0 评论 -
HDU 3341 Lost‘s revenge (AC自动机+DP)
题目链接 题意:给定n个模式串和一个文本串,可以任意重新排列文本串,求所有方案中 匹配模式串数量最多是多少。(模式串匹配允许重叠) #include <bits/stdc++.h> using namespace std; const int MAXN = 510; inline int getId(char ch) { if (ch == 'A') return 0; if (ch == 'T') return 1; if (ch ==原创 2020-11-28 23:00:30 · 69 阅读 · 0 评论 -
HDU 4057 Rescue the Rabbit(AC自动机+DP)
题目链接 题意:给定n个模式串,每个模式串都有权值。文本串如果包含某个模式串,就加上该模式串的权值(如果某个模式串多次出现,只计算一次的贡献),求所有长度为L的文本串中权值最大的是多少。 AC自动机+DP 的入门题。n最大只有10,用二进制状态压缩来表示n个模式串的出现情况。dp[i][j][k] i代表当前文本串长度,j代表当前在AC自动机上第 j个结点,k就是二进制压缩的状态,表示当前n个串的出现情况。DP数组的值为0或1,表示对应的状态是否存在。最后遍历所有二进制压缩的状态,计算其贡献并取最大值。D原创 2020-11-27 12:53:40 · 90 阅读 · 0 评论 -
L3-001 凑零钱 (30分) CCCC团体程序设计大赛 (01背包+输出最小字典序方案)
#include<bits/stdc++.h> using namespace std; const int MAXN = 1e4 + 4; const int MAXW = 2e2 + 2; int w[MAXN]; int dp[MAXW]; int path[MAXN][MAXW]; int main() { int n, W; scanf("%d%d", &n, &W); for (int i = 1; i <= n; i++)scanf("%d", &a..原创 2020-11-20 19:13:48 · 135 阅读 · 0 评论 -
2020CCPC长春A - Krypton(混合背包)
In the future several years, you will surely remember that you once participated in a special China Collegiate Programming Contest. Due to COVID-19, all parties had paid a lot of effort to eventually hold a rare online programming contest. As a problem wri原创 2020-11-08 22:23:04 · 596 阅读 · 0 评论 -
AOJ 15951 零件加工问题二
题目传送门 Description 有个国有中型企业,接到一批需要加工零件的订单,员工们非常高兴,工厂领导为了鼓励员工尽快地完成加工任务,出台了奖励政策:“如果在保证质量要求的前提下,每完成一个零件加工任务,都有相同数量的奖金!”。所以所有员工都希望加工尽量多的零件,以便拿到更多的奖金。现在请你帮忙,怎样加工才能在一台机床上加工最多的零件。 假定对于待加工的第i个零件,给你两个非负整数Si,Ei,其中Si表示加工开始的时间,其中Ei表示加工结束的时间,由于受到客观条件的制约,这开始和结束的时间限制必须要遵原创 2020-11-07 10:56:31 · 465 阅读 · 0 评论