思路
实质上是01背包问题。
本题用DFS暴力搜索绝对会超时,应当使用动态规划。
由于未指定D的最大值,故使用了map。
本文参考了:PAT (Top Level) Practise 1002 Business (35)
通过该链接,学到了给结构体添加成员函数,给结构体重载小于号操作符,利用map进行动态规划。
通过画面
代码
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>
#include <map>
#include <algorithm>
using namespace std;
struct project {
int L, P, D;
bool operator < (const project &p) {
return D < p.D;
}
void input(void) {
scanf("%d %d %d", &P, &L, &D);
return;
}
};
int main(void) {
project *arr;
int n, i, best_gain = 0;
map<int, int> *mp;
scanf("%d", &n);
mp =