bzoj 4813: [Cqoi2017]小Q的棋盘【树形dp】
这么简单的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】相关推荐
- BZOJ 4813: [Cqoi2017]小Q的棋盘 (树形dp)
题目传送门 Solution 树形背包dp大水题,是POJ某道题的弱化版...不想说了,据说贪心也能过此题.. 一开始50分,dp数组初始化炸了,表示无语.. Code #include <io ...
- [bzoj4813][Cqoi2017]小Q的棋盘
来自FallDream的博客,未经允许,请勿转载,谢谢. 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能在有连线的格点之间移动.整个棋盘上共有V ...
- Luogu 3698 [CQOI2017]小Q的棋盘
BZOJ 4813 虽然数据范围很迷人,但是想树形$dp$没有前途. 先发现一个事情,就是我们可以先选择一条链,最后要走到这一条链上不回来,走到链上的点每一个只需要一步,而如果要走这条链之外的点,一个 ...
- bzoj 4814: [Cqoi2017]小Q的草稿【计算几何】
//先打个50暴力,10min50分简直美滋滋~ #include<iostream> #include<cstdio> #include<algorithm> u ...
- [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 说 ...
- 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( ...
- [CQOI2017]小Q的表格(数论+分块)
题目描述 小Q是个程序员. 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理.每当小Q不知道如何解决时,就只好向你求助. 为了完成任务,小Q需要列一个表格,表格有无穷多 ...
- BZOJ.4199.[NOI2015]品酒大会(后缀自动机 树形DP)
BZOJ 洛谷 后缀数组做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 只考虑求极长相同子串,即所有后缀之间的LCP. 而后缀的LCP在后缀树的LCA处.同差异这道题,在每个点处 ...
- bzoj 2427: [HAOI2010]软件安装(Trajan+树形DP)
2427: [HAOI2010]软件安装 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1844 Solved: 723 [Submit][Sta ...
最新文章
- SpringBoot-web开发(三): 模板引擎Thymeleaf
- Markdown编辑器editor.md的使用
- LeetCode Self Crossing(判断是否相交)
- ant打包web项目
- POJ 3034 Whac-a-Mole(DP)
- argb888与rgb888转换程序_一文了解各平台RGB565和RGB888区别
- 面试编程岗,期望40K,为什么老板给我翻倍?
- 如何将vue项目打包为.apk文件
- jwt https://mp.weixin.qq.com/s/8FdzMq4msyhqE9Rrhgwqjw
- 如何在单元里植入图片html,单元格用HTML显示图片
- roipool and roialign difference
- CentOS7中Docker安装mysql主从复制、日常排错
- 数据库设计(一、二、三及BCNF范式)
- 计算字符串长度函数大全
- 计算机没有休眠,没有休眠选项,电脑没有休眠选项
- 计算机开机选择用户界面,Windows10每次开机都会出现选择操作系统界面的解决方法...
- Phun一个有意思的程序
- 记一次数据结构与算法作业:利用循环和递归输出1-N的正整数的程序分析比较
- Spring的Tomcat服务关闭后,Quartz进程无法正常关闭,出现内存泄露
- 2021AAPM大赛第一名技术报告Designing an Iterative Network for Fanbeam-CTwith Unknown Geometry 阅读笔记
热门文章
- 蜻蜓resin服务器虚拟目录的设置
- DataGridView打印类
- uscao Spinning Wheels
- 常量元素记忆口诀_化学口诀表:帮助学生加深记忆提高解题正确率
- 计算机应用为什么要学机械制图,机械制图为什么这么难学?
- visual MySQL 教程_MySql轻松入门系列——第二站 使用visual studio 对mysql进行源码级调试...
- 电脑护眼模式_看绿色护眼不管用!别再相信这些护眼方法了!想护眼记住这4点!...
- java强引用弱引用_Java 的强引用、弱引用、软引用、虚引用
- java webservice序列化_java – 可以用CXF生成可序列化的类吗?
- spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……