梳踟希 发表于 2025-6-9 19:49:46

2025/2/7课堂记录

目录


[*]二叉苹果树
[*]选课


[*]二叉苹果树
这是一道树上依赖背包题,也叫做分组背包
依赖:选这一个,从它到根所有节点都要选,具有依赖性
分组:每个节点下的子节点分好几个组,每一个组单独做背包
maketree:因为题目没告诉父子关系,要自己推
看注释!!就写了亿点点注释 #include#includeusing namespace std;int map,l,r,ap,f;int n,q;void maketree(int a){        for(int i=1;i=0)//找到啦(你的破绽,砰!                 {                        l=i;//标记左孩子(其实也不一定,但无所谓                         ap=map;//所有的苹果放在孩子身上,这步是关键思想!!!!!!!!!                         map=-1;//删边                         map=-1;                        maketree(i);//从孩子接着往下推                         break;//一定要炸掉,不然l就被顶替了                 }        for(int i=1;i=0)                {                        r=i;                        ap=map;                        map=-1;                        map=-1;                        maketree(i);                        break;                }}int dp(int fa,int num)//dp(fa,num)和f的含义都是fa节点必选,总共选num个节点最多苹果数 {        if(num==0)return 0;//一个都没有那就一个都没有呗         if(l==0)return ap;//没有孩子那就只有自己呗(此时num肯定>0)         if(f>0)return f;//之前来过了,不用再来了         for(int i=0;i>n>>q;//n:节点数量,q:保留边数量         q++;//保留q条边,实际就是保留q+1个节点(父亲+每一条边后面跟着一个节点         memset(map,-1,sizeof(map));//初始化负数         for(int i=1;i>x>>y>>z;                map=z;//因为输入的时候父亲孩子没有固定顺序                 map=z;//所以双向建图就行,反正用的链接表,多余空间不用白不用         }        maketree(1);//从根节点一点一点往下推         cout=1;t--)                {                  f=f+a;                        }         }}int main(){    cin>>m>>n;    //这里并没有把树根单独拎出来的原因是把所有树根直接绑在了0上,相当于0是根,所有的“根”都是0的孩子        //把一片树林看作一颗树   for(int i=1;i>x>>y;      a=y;                //存储成有向图的方式         tr.push_back(i);//x是父亲,i是孩子   }    dfs(0);//森林的根   cout

莅耸 发表于 2025-10-11 15:54:53

yyds。多谢分享

挚魉 发表于 2025-11-10 09:48:58

热心回复!

锄淫鲷 发表于 2025-11-18 09:52:35

很好很强大我过来先占个楼 待编辑

慎气 发表于 2025-11-27 06:33:51

很好很强大我过来先占个楼 待编辑

芮梦月 发表于 2025-11-27 16:52:11

东西不错很实用谢谢分享

胆饬 发表于 2026-1-3 20:31:38

热心回复!

怒鼓踊 发表于 2026-1-5 13:39:28

谢谢分享,试用一下

恶凝毛 发表于 2026-1-15 06:56:01

收藏一下   不知道什么时候能用到

荪俗 发表于 2026-1-17 13:15:11

懂技术并乐意极积无私分享的人越来越少。珍惜

宗和玉 发表于 2026-1-19 11:02:08

感谢分享,学习下。

吕颐然 发表于 2026-1-20 00:46:53

yyds。多谢分享

猷咎 发表于 2026-1-21 03:42:17

yyds。多谢分享

孟清妍 发表于 2026-1-21 03:45:58

这个有用。

蝌棚煌 发表于 2026-1-21 08:00:18

这个好,看起来很实用

万俟谷雪 发表于 2026-1-21 22:01:51

感谢分享,下载保存了,貌似很强大

孟清妍 发表于 2026-1-22 13:37:08

东西不错很实用谢谢分享

暴灵珊 发表于 2026-1-22 14:42:09

谢谢分享,试用一下

裴竹悦 发表于 2026-1-24 17:27:31

分享、互助 让互联网精神温暖你我

阙忆然 发表于 2026-1-25 09:58:14

这个有用。
页: [1] 2
查看完整版本: 2025/2/7课堂记录