4813: [Cqoi2017]小Q的棋盘 题意: 某poj弱化版?树形背包 据说还可以贪心... #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; const int N = 105; inline int read()…
Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格点之间移动.整个棋盘上共有V个格点,编号为0,1,2-,V-1,它们是连通的,也就是说棋子从任意格 点出发,总能到达所有的格点.小Q在设计棋盘时,还保证棋子从一个格点移动到另外任一格点的路径是唯一的. 小Q现在想知道,当棋子从格点0出发,移动N步最多能经过多少格点.格点可以重复经过多次,但不重复计数. Input 第一行包含2个正整数V,N,其中V表示格点总…
这么简单的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<…
唔,貌似以前做过这样差不多的题目. 用$f(i,0/1)$表示从某一点出发,只能走子树的情况下回到根.不回到根的最多经过不同的点数. 然后就可以DP辣 #include <map> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using name…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4813 暴力转移就好,考虑以某一个点为根的子树分为是否走回来两种情况 ${f_{i,j}}$表示已点$i$为根的子树,走了$j$步之后回到点$i$最多能经过多少个点 ${g_{i,j}}$表示已点$i$为根的子树,走了$j$步之后不管停在那个点最多能经过多少个点 写了个${n^{2}}$转移 #include<iostream> #include<algorithm> #in…
Code: #include <bits/stdc++.h> #define N 107 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,K,f[N][N],g[N][N],tmp[N][N]; vector<int>G[N]; void add(int u,int v) { G[u].push_back(v); } void getmax(int &…
4813: [Cqoi2017]小Q的棋盘 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 804  Solved: 441[Submit][Status][Discuss] Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格点之间移动.整个棋盘上共有V个格点,编号为0,1,2…,V-1,它们是连通的,也就是说棋子从任意格 点出发,总能到达所有的格点.小Q在设…
BZOJ_4813_[Cqoi2017]小Q的棋盘_dfs Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格点之间移动.整个棋盘上共有V个格点,编号为0,1,2…,V-1,它们是连通的,也就是说棋子从任意格 点出发,总能到达所有的格点.小Q在设计棋盘时,还保证棋子从一个格点移动到另外任一格点的路径是唯一的. 小Q现在想知道,当棋子从格点0出发,移动N步最多能经过多少格点.格点可以重复经过多次,但不重复计数…
P3698 [CQOI2017]小Q的棋盘 题目描述 小 Q 正在设计一种棋类游戏. 在小 Q 设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能在有连线的格点之间移动.整个棋盘上共有 V 个格点,编号为0,1,2 - , V− 1,它们是连通的,也就是说棋子从任意格点出发,总能到达所有的格点.小 Q 在设计棋盘时,还保证棋子从一个格点移动到另外任一格点的路径是唯一的. 小 Q 现在想知道,当棋子从格点 0 出发,移动 N 步最多能经过多少格点.格点可以重复经过多次,但不重复…
[BZOJ4813][CQOI2017]小Q的棋盘(贪心) 题面 BZOJ 洛谷 题解 果然是老年选手了,这种题都不会做了.... 先想想一个点如果被访问过只有两种情况,第一种是进入了这个点所在的子树并且还要再次回到它的父亲,那么为了访问这个点你要花费\(2\)步,另外一种是进入了这个点你不回去了,那么这个点你只需要花费一步.对于不会去的情况而言,显然自上而下是一条链,那么我们肯定把最长链给找出来,最长链上的点都不再回去了,而其他的点访问一次的贡献就是\(2\),直接计算就做完了. #inclu…