对于每次的任务,如果做了可能会对当前产生负效应,如果不做可能会错过之后的正效应,很明显的一道dp题。
用记忆化的方式来dp更容易代码实现。
分别记录:[当前是第几次抛宝物] [当前已经收集到的宝物的状态]。
对于一个当前可以收集的宝物来说,可以选择收集或不收集;对于一个不可收集的宝物来说,当然是不收集喽。
#include <bits/stdc++.h>
using namespace std;
const int N=16,M=105;
int K,n,t;
int add[N];
double inf,p[M],f[M][1<<N];
double dfs(int now,int S)
{