做网站需要考虑哪些,wordpress 文章顺序,手机主题wordpress,今天哈尔滨最新通知思路#xff1a;
#xff08;1#xff09;对于每一个位置#xff0c;有三种选择#xff0c;一是选择删除#xff0c;二是选择当排头清洗#xff0c;三是被前面的排头清洗#xff1b;
#xff08;2#xff09;注意到总是要求将最后一位数清洗完#xff0c;即前面信…思路
1对于每一个位置有三种选择一是选择删除二是选择当排头清洗三是被前面的排头清洗
2注意到总是要求将最后一位数清洗完即前面信息依赖后面信息于是考虑从后往前分析令f[i]描述i~n最小代价则对于第i位可选择
删除: f[i] f[i 1] 1清洗f[i] f[i a[i] 1]等待清洗由于我们只讨论i~n位的信息所以必须保证第i位被清洗故不可等待。
代码
#include iostream
#include queue
using namespace std;
const int maxn 2e5 10;
int dp[maxn], a[maxn];void solve() { int n;cin n;for (int i 1; i n; i) {cin a[i];}dp[n] 1;dp[n1] 0;for (int i n - 1; i 1; --i) {dp[i] 1 dp[i1]; // 删除第i个if (i a[i] n) { // 利用第i个做为区间起点dp[i] min(dp[i], dp[ia[i]1]);}}printf(%d\n, dp[1]);
}
int main()
{int t;cin t;while(t --){solve();}return 0;
}