BZOJ 4813: [Cqoi2017]小Q的棋盘 (树形dp)
题目传送门
Solution
树形背包dp大水题,是POJ某道题的弱化版。。。不想说了,据说贪心也能过此题。。
一开始50分,dp数组初始化炸了,表示无语。。
Code
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#define N 111using namespace std;int n, v, cur, head_p[N];
int dp[N][N][2];
struct Tadj{int next, obj;} Edg[N<<1];void Insert(int a, int b){cur ++;Edg[cur].next = head_p[a];Edg[cur].obj = b;head_p[a] = cur;
}void dfs(int root, int fa){for(int i = head_p[root]; ~ i; i = Edg[i].next){int v = Edg[i].obj;if(v == fa) continue;dfs(v, root);for(int j = n; j >= 1; j--)for(int k = 1; k <= j; k++){if(k >= 2){dp[root][j][0] = max(dp[root][j][0], dp[v][k-2][0] + dp[root][j-k][0]);dp[root][j][1] = max(dp[root][j][1], dp[v][k-2][0] + dp[root][j-k][1]);}dp[root][j][1] = max(dp[root][j][1], dp[v][k-1][1] + dp[root][j-k][0]);//这里其实还有一个状态不过是废的//就是让它回到儿子节点但不回到子树的根(明显这不优)}}
}int main(){scanf("%d%d", &v, &n);for(int i = 1; i <= v; i++) head_p[i] = -1;cur = -1;int a, b;for(int i = 1; i < v; i++){scanf("%d%d", &a, &b);Insert(a+1, b+1);Insert(b+1, a+1);}memset(dp, 0, sizeof(dp));for(int i = 1; i <= v; i++)for(int j = 0; j <= n; j++) dp[i][j][0] = dp[i][j][1] = 1;//初始化dfs(1, 0);printf("%d\n", max(dp[1][n][0], dp[1][n][1]));return 0;
}
用力踩,那不堪一击的洁白。
BZOJ 4813: [Cqoi2017]小Q的棋盘 (树形dp)相关推荐
- bzoj 4813: [Cqoi2017]小Q的棋盘【树形dp】
这么简单的dp我怎么没想到x2 f为从这个点出发后回到这个点最多能走过的点,g为从这个点出发后不回到这个点最多能走过的点,注意g有两种转移:g[u][k]=max(g[u][k],f[u][k-j-1 ...
- [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 ...
最新文章
- 精选Python开源项目Top10!
- python pandas写入数据后保存_python读取MySQL数据使用pandas写入到csv,并保存列名
- ARM7还是ARM9?uCOS还是Linux?
- Linux 下关闭防火墙设置
- Atitit.跨语言异常转换机制 java c# php到js的异常转换
- linux安装mysql5.6rpm_centos6.5 下安装mysql5.6,rpm方式
- 点点滴滴——变量对象的产生
- [GIS原理] 10.1 空间统计描述(描述性分析、探索性数据分析)、空间自相关分析 - QQ图、权重矩阵、Moran'sl、G统计量
- Qt登录界面实现以及跳转不同界面
- python 正则findall右斜杠_Python正则表达式匹配反斜杠问题解析
- 太阳时角、太阳高度角、天顶角、太阳方位角和剖面角计算的Python程序
- draw.io二次开发改造过程
- 50个查询系列-第五个查询:查询没学过“叶平”老师课的同学的学号、姓名;...
- 机器学习-LDA--景区评论分析 ipython
- uvalive4987
- 计算机操作与应用60,60个技巧使您成为计算机高手!
- 跨境电商前景 跨境电商运营前景待遇
- python图像锐化,图像加强、锐化,利用 Python-OpenCV 来实现 4 种方法!
- Web UI自动化测试系统设计
- 第四代计算机主要采用什么作为逻辑开关元件,第四代计算机重要采纳什么作为逻辑开关元件?...