写在前面

在我写这篇博客时,我已经搭上了前往大二下学期的火车,长达20小时的车程,而且我是上铺,干啥啥不成,但这仍然阻止不了我对算法的热情,所以,我写下了这篇博客(其实是下的剧看完了,不知道干什么,而且这是我第一次用手机写博客,格式什么的就不重要了).

动态规划

什么时候动态规划?最简单的动态规划应该是斐波那契数列,斐波那契数列后一个结果不断调用之前的结果,从而分而治之,这就是动态规划的思想
```c++

include<bits/stdc++.h>

using namespace std;
int main()
{
int fibonacci[100];
fibonacci[0]=1;
fibonacci1=1;
for(int i=2;i<100;i++)
fibonacci[i]=fibonacci[i-1]+fibonacci[i-2];
for(int i=0;i<100;i++)
cout<<fibonacci[i];
}


##背包问题
说是有个包,容量设其为storage,现在有一些商品,它们的价值和重量为value和weight,现在问如何用包的空间装最有价值的物品。
我们设一个数组dp[][]

```c++
#include<bits/stdc++.h>
using namespace std;
int w[105];
int v[105];
int dp[105][105];
int main()
{
   int n,m;
   cin<<n;

   for(int i=1;i<n;i++)
      cin>>w[i]>>v[i];
   for(int i=i;i<=n;i++)
      for(int j=1;j<=m;j++)
       if(j<w[i])dp[i][j]=dp[i-1][j];
       else dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
    cout<<dp[n][m];
}

6AGFBR.png
我的手已经要告别我了QAQ