2025/2/10课堂记录
目录[*]选课
[*]叶子的染色
[*]数字转换
[*]选课
分组背包题
这次是自己写的代码了,也就瞟了标准答案几眼,真的就几眼
用的也是vector邻接表#include#includeusing namespace std;vector zi;//zi:i的第j个孩子 (j动态大小 int a,m,n,f;//f:以i为根最多选j和节点,最大值 void maketree(int root){ for(int i=0;i=1;j--) for(int k=j;k>=1;k--) f=max(f,f+f]); } if(root!=0) for(int i=m;i>=1;i--) f=f+a;}int main(){ cin>>m>>n;//m:待选,n:可选 for(int i=1;i>x>>y; zi.push_back(i);//表示x的孩子再多一个i a=y; } maketree(0); cout>n; for(int i=1;i>c; for(int i=1;i>x>>y; add(x,y); add(y,x); } dp(n+1,-1);//随便选一个不是叶子的节点都行,没有父亲为-1 cout
页:
[1]