这么简单的dp我怎么没想到x2
f为从这个点出发后回到这个点最多能走过的点,g为从这个点出发后不回到这个点最多能走过的点,注意g有两种转移:g[u][k]=max(g[u][k],f[u][k-j-1]+g[e[i].to][j])是在e[i].to这个子树前走了一棵子树再回来,g[u][k]=max(g[u][k],g[u][k-j-2]+f[e[i].to][j])是走了e[i].to的一棵子树之后回到e[i].to再走另一棵

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=105;
int n,m,h[N],cnt,f[N][N],g[N][N],ans;
struct qwe
{int ne,to;
}e[N<<1];
void add(int u,int v)
{cnt++;e[cnt].ne=h[u];e[cnt].to=v;h[u]=cnt;
}
void dp(int u,int fa)
{f[u][0]=g[u][0]=1;for(int i=h[u];i;i=e[i].ne)if(e[i].to!=fa){dp(e[i].to,u);for(int k=m;k>=1;k--)for(int j=0;j<k;j++){if(k-j-2>=0)f[u][k]=max(f[u][k],f[u][k-j-2]+f[e[i].to][j]);g[u][k]=max(g[u][k],f[u][k-j-1]+g[e[i].to][j]);if(k-j-2>=0)g[u][k]=max(g[u][k],g[u][k-j-2]+f[e[i].to][j]);}}for(int i=0;i<m;i++){f[u][i+1]=max(f[u][i],f[u][i+1]);g[u][i+1]=max(g[u][i],g[u][i+1]);}
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<n;i++){int x,y;scanf("%d%d",&x,&y);add(x+1,y+1);add(y+1,x+1);}dp(1,1);printf("%d\n",g[1][m]);return 0;
}

转载于:https://www.cnblogs.com/lokiii/p/8510764.html

bzoj 4813: [Cqoi2017]小Q的棋盘【树形dp】相关推荐

  1. BZOJ 4813: [Cqoi2017]小Q的棋盘 (树形dp)

    题目传送门 Solution 树形背包dp大水题,是POJ某道题的弱化版...不想说了,据说贪心也能过此题.. 一开始50分,dp数组初始化炸了,表示无语.. Code #include <io ...

  2. [bzoj4813][Cqoi2017]小Q的棋盘

    来自FallDream的博客,未经允许,请勿转载,谢谢. 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能在有连线的格点之间移动.整个棋盘上共有V ...

  3. Luogu 3698 [CQOI2017]小Q的棋盘

    BZOJ 4813 虽然数据范围很迷人,但是想树形$dp$没有前途. 先发现一个事情,就是我们可以先选择一条链,最后要走到这一条链上不回来,走到链上的点每一个只需要一步,而如果要走这条链之外的点,一个 ...

  4. bzoj 4814: [Cqoi2017]小Q的草稿【计算几何】

    //先打个50暴力,10min50分简直美滋滋~ #include<iostream> #include<cstdio> #include<algorithm> u ...

  5. [CQOI2017]小Q的棋盘

    输入输出样例 输入样例#1: 5 2 1 0 2 1 3 2 4 3 输出样例#1: 3 输入样例#2: 9 5 0 1 0 2 2 6 4 2 8 1 1 3 3 7 3 5 输出样例#2: 5 说 ...

  6. P3700 [CQOI2017]小Q的表格(反演、分块)

    P3700 [CQOI2017]小Q的表格 给定一个大小为n×nn \times nn×n的表格,初始时i,ji, ji,j位置上填的是f(i,j)=i×jf(i, j) = i \times jf( ...

  7. [CQOI2017]小Q的表格(数论+分块)

    题目描述 小Q是个程序员. 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理.每当小Q不知道如何解决时,就只好向你求助. 为了完成任务,小Q需要列一个表格,表格有无穷多 ...

  8. BZOJ.4199.[NOI2015]品酒大会(后缀自动机 树形DP)

    BZOJ 洛谷 后缀数组做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 只考虑求极长相同子串,即所有后缀之间的LCP. 而后缀的LCP在后缀树的LCA处.同差异这道题,在每个点处 ...

  9. bzoj 2427: [HAOI2010]软件安装(Trajan+树形DP)

    2427: [HAOI2010]软件安装 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1844  Solved: 723 [Submit][Sta ...

最新文章

  1. SpringBoot-web开发(三): 模板引擎Thymeleaf
  2. Markdown编辑器editor.md的使用
  3. LeetCode Self Crossing(判断是否相交)
  4. ant打包web项目
  5. POJ 3034 Whac-a-Mole(DP)
  6. argb888与rgb888转换程序_一文了解各平台RGB565和RGB888区别
  7. 面试编程岗,期望40K,为什么老板给我翻倍?
  8. 如何将vue项目打包为.apk文件
  9. jwt https://mp.weixin.qq.com/s/8FdzMq4msyhqE9Rrhgwqjw
  10. 如何在单元里植入图片html,单元格用HTML显示图片
  11. roipool and roialign difference
  12. CentOS7中Docker安装mysql主从复制、日常排错
  13. 数据库设计(一、二、三及BCNF范式)
  14. 计算字符串长度函数大全
  15. 计算机没有休眠,没有休眠选项,电脑没有休眠选项
  16. 计算机开机选择用户界面,Windows10每次开机都会出现选择操作系统界面的解决方法...
  17. Phun一个有意思的程序
  18. 记一次数据结构与算法作业:利用循环和递归输出1-N的正整数的程序分析比较
  19. Spring的Tomcat服务关闭后,Quartz进程无法正常关闭,出现内存泄露
  20. 2021AAPM大赛第一名技术报告Designing an Iterative Network for Fanbeam-CTwith Unknown Geometry 阅读笔记

热门文章

  1. 蜻蜓resin服务器虚拟目录的设置
  2. DataGridView打印类
  3. uscao Spinning Wheels
  4. 常量元素记忆口诀_化学口诀表:帮助学生加深记忆提高解题正确率
  5. 计算机应用为什么要学机械制图,机械制图为什么这么难学?
  6. visual MySQL 教程_MySql轻松入门系列——第二站 使用visual studio 对mysql进行源码级调试...
  7. 电脑护眼模式_看绿色护眼不管用!别再相信这些护眼方法了!想护眼记住这4点!...
  8. java强引用弱引用_Java 的强引用、弱引用、软引用、虚引用
  9. java webservice序列化_java – 可以用CXF生成可序列化的类吗?
  10. spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……