先总结一下近期学习状态,做题的时候模板使用比较顺利 但是思路上还是不太上道
最近感觉要看的东西太多了 感觉完全是在专业课刚刚搞懂的后面又紧跟上了万千dp背包 这个清明假期把前面没ac的题全过一次
近期还是以dp背包为重心 然后有时间盈余会回去看一下贪心的课件 但是例题还是跟不太上 很多题不能及时产生联想 背包也是稀里糊涂背上模版就过了 还是要多想几次
背包模板总结 :
dp背包问题核心依然是状态转移方程 分析题意所给环境 一步一步回推 或者在一组数据中间回推 但是大部分题目都有可以直接嵌套模板的结构
1/01背包问题
for(int i=0;i<n;i++)
{
for(int j=W;j>=w[i];j--)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i])
}
}
2/完全背包问题
for(int i=0;i<n;i++)
{
for(int j=w[i];j<=W;j++)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
3/多重背包问题
for(int i=0;i<n;i++)
{
int num=n[i];
for(int k=0;k<=num[i];k++)
{
for(int j=W;j>=w[i];j--)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
}
小结:
模板使用虽然相对熟练 但是思路上还是存在卡壳
做题的时候不能及时的想出来 空余时间要多锻炼思考一下
一直感觉万能头文件不是万能的 果然。。。
万能头文件头文件#include<bits/stdc++.h>可能会导致编译错误
编译错误时可以分开写
以后可得注意一下