Note that this is the first problem of the two similar problems. You can hack this problem only if you solve both problems. You are given a tree with nn nodes. In the beginning, 00 is written on all edges. In one operation, you can choose any 22 dist…
Add on a Tree time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Note that this is the first problem of the two similar problems. You can hack this problem only if you solve both problems. You…
题目链接:codeforces 1065F Up and Down the Tree 题意:给出一棵树的节点数\(n\)以及一次移动的最大距离\(k\),现在有一个标记在根节点1处,每一次可以进行一下的两个操作之一: 1.将标记移动至当前节点的子树中的某一个叶子 2.将当前标记向上移,向上移的距离不得超过\(k\) 求最多可以访问到多少个叶子结点 分析:一看就知道应该用树形dp去维护它 我们记\(dp[u]\)表示以\(u\)为根节点的子树中最多可以访问多少个叶子结点 \(dp[u]\)由两部分…
Codeforces 914H Ember and Storm's Tree Game 题目链接 ORZ佬 果然出了一套自闭题 这题让你算出第一个人有必胜策略的方案数 然后我们就发现必胜的条件就是树上的每条路径都是单调或者单峰的 所以我们考虑DP一个每条路径都是单调或单峰的树出来 所以考虑DPf[i][j]" role="presentation" style="position: relative;">f[i][j]f[i][j]表示大小是i的子树…
Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/problem/F Solution 设\(v_i\)表示第\(i\)个点的果子数,设\(b_i=v_i-\sum_{x\in son}v_x\),显然依题意要满足\(b_i\geqslant 0\). 根据差分的性质我们可以得到\(\sum b_i=x\). 假设我们硬点树上剩下了\(m\)个点,则…
https://codeforces.com/contest/1136/problem/D 贪心 + 思维 题意 你面前有一个队列,加上你有n个人(n<=3e5),有m(m<=个交换法则,假如u在v相邻前面,那么u和v可以交换位置,问你是队列最后一个人的时候你最前可以换到前面哪里 题解 因为相邻才能换,所以最后一个换到前面一定是一步一步向前走,所以不存在还要向后走的情况 设最后一个为u,假设前面有一个能和u换位置的集合,那么需要将这些点尽量往后移动去接u 假设前面有一个不能和u换位置的集合S,…
D. Minimum Diameter Tree 思维+猜结论 题意 给出一颗树 和一个值v 把该值任意分配到任意边上 使得\(\sum\limits_{i,j}p_{ij}=v\) 使得 这颗树任意两个点的简单路的最大值最小 思路 根据样例我们可以很好得蒙出 只要平均分在度数位1的点所连的边上面就可以了 树猜结论无非是度数 边关系之类的 #include<bits/stdc++.h> #define FOR(i,f_start,f_end) for(int i=f_start;i<=f…
题目:http://codeforces.com/contest/1189/problem/D1 题意:给定一棵树,可以选择任意两个叶子节点对他们的路径增加一定的权值. 问对于给定的这棵树,是否可以得到任意形式的权值. 思路: 只要有一个节点的度是2,那么这个节点连接的某一条边一定受到另一条边的控制. #include<cstdio> #include<cstdlib> #include<map> #include<set> #include<cstr…
题目链接:http://codeforces.com/contest/764/problem/C 题意:给出一个树,然后各个节点有对应的颜色,问是否存在以一个点为根节点子树的颜色都一样. 这里的子树颜色都一样表示分出来的子树各自颜色一样. 就是随意找一个树叶节点然后一直遍历,直到找到一个和他颜色不一样的节点,那么要么取不一样的节点 为根或者取最后一个一样的节点为根.然后就dfs一遍. #include <iostream> #include <cstring> #include &…
传送门 首先可以证明一颗树合法的充分必要条件是不存在某个节点的度数为 $2$ 首先它是必要的,考虑任意一条边连接的两点如果存在某一点 $x$ 度数为 $2$ ,那么说明 $x$ 还有连一条边出去,那么连出去的那一条边和当前边的权值就永远一样 然后它是充分的,考虑进行如下操作:首先设当前边连接的两端分别为 $L,R$ ,如果 $L,R$ 只要存在某一个度数为 $1$ 显然合法 然后考虑 $L,R$ 度数不为 $1$ 的情况,那么 $L,R$ 一定分别存在两个儿子连向叶子,设为 $Lx,Ly,Rx,…