题目大概:
一条路上可以在n个位置建饭店,每个饭店到最左边的距离不同,盈利不同,并且在k距离内只能有一个饭店。
思路:
这个题很像背包问题。
dp[n]是前n个饭店的最大盈利,a[n],位置,b[n]盈利,c[n]n到最左边的距离。
1。。当前位置不建,dp[n]=dp[n-1]。
2。。当前位置建,dp[n]=max(dp[k] k=1....n-1 )+b[n]。
感想:
大部分动态规划都是选当前的一种情况,不选一种情况。
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int dp[101];
int main()
{
int t,n,m,a[