题解列表

筛选

最长子序列

```cpp#includeusingnamespacestd;strings1;intans=0;constintL=1000010;intarr[L];intmain(){cin>>s1;for(inti=0,j=0;i

动态规划 线性dp

```cpp#includeusingnamespacestd;intINT=1e9;constintL=1000;intn;intdp[L][L],arr[L][L],kt[L][L];intans=0;intmain(){cin>>n;for(inti=1;iarr[i][j];}}for(int

多重背包 动态规划

```cpp#includeusingnamespacestd;constintL=5000+50;intn,m;intv[L],w[L],q[L];intdp[L][L];intmain(){scanf("%d%d",&n,&m);for(inti=1;i

完全背包问题,动态规划!!

其实和01背包问题差别不大,01背包每件物品只能选一个,多重背包每件物品在不超过背包体积的条件下可以选择无限个!```cpp#includeusingnamespacestd;constintL=5000+50;intn,m;intv[L],

01背包问题 动态规划

```cpp#includeusingnamespacestd;constintL=5000+50;intn,m;intv[L],w[L];intdp[L][L];intmain(){scanf("%d%d",&m,&n);for(inti=1;i

01背包问题!!!

```cpp#includeusingnamespacestd;constintL=5001;intn,m;intv[L],w[L];intdp[L][L];intmain(){scanf("%d%d",&n,&m);for(inti=1;i

简单遍历解决

摘要:解题思路:即寻找两正整数a,b最大无法组合的数。已知a*b一定可以被组合,从a*b开始往小搜索即可。注意事项:参考代码:#include<iostream>using namespace std;in……
优质题解

汉诺塔【经典递归问题(多分支)】

**凡是递归问题都是找重复,找子问题,找变化量,找出口**找重复,我们就要划分问题,将最后一个盘子n和n-1个盘子划分开来子问题就是求n-1个盘子如何移动变化量就是盘子数,每次将**此时**最大的盘子n留下,将剩下的n-1移动(此n非上述n)出口就是n等于1,