CF 1029E Tree with Small Distances
昨晚随便玩玩搞个div3结果浪翻了……
强烈谴责D题hack数据卡常
考虑到本题中所要求的最短距离不会大于2,所以我们可以把所有结点到$1$的距离通过对$3$取模分类,考虑到直接自顶向下贪心不满足局部最优解可以推出全局最优解,所以我们可以自下向上这样可以考虑到所有条件。我们处理出一个结点$x$所有儿子$y$的取模后的距离的最小值$dis$,那么一个结点向$1$连一条边的充要条件就是:
$dis == 0 && x != 1 && fa != 1$
时间复杂度$O(n)$。
Code:
#include <cstdio> #include <cstring> using namespace std;const int N = 2e5 + 5;int n, ans = 0, tot = 0, head[N];struct Edge {int to, nxt; } e[N << 1];inline void add(int from, int to) {e[++tot].to = to;e[tot].nxt = head[from];head[from] = tot; }inline void read(int &X) {X = 0;char ch = 0;int op = 1;for(; ch > '9'|| ch < '0'; ch = getchar())if(ch == '-') op = -1;for(; ch >= '0' && ch <= '9'; ch = getchar())X = (X << 3) + (X << 1) + ch - 48;X *= op; }inline void chkMin(int &x, int y) {if(y < x) x = y; }int dfs(int x, int fat) {int dis = 2;for(int i = head[x]; i; i = e[i].nxt) {int y = e[i].to;if(y == fat) continue;chkMin(dis, dfs(y, x));}if(dis == 0 && x != 1 && fat != 1) ans++;return (dis + 1) % 3; }int main() {read(n);for(int x, y, i = 1; i < n; i++) {read(x), read(y);add(x, y), add(y, x);}dfs(1, 0);printf("%d\n", ans);return 0; }
View Code
转载于:https://www.cnblogs.com/CzxingcHen/p/9532801.html
CF 1029E Tree with Small Distances相关推荐
- CF 375D. Tree and Queries加强版!!!【dfs序分块 大小分类讨论】
传送门 题意: 一棵树,询问一个子树内出现次数$\ge k$的颜色有几种,Candy?这个沙茶自带强制在线 吐槽: 本来一道可以离散的莫队我非要强制在线用分块做:上午就开始写了然后发现思路错了...: ...
- Codeforces Round #506 (Div. 3) - E. Tree with Small Distances
题目链接 题意 给你一棵树,最多加几条边,使点1到所有的点的最大距离不超过2 AC 贪心 从距离最远的点开始,找到他的父节点,然后把父节点相连的点删去,这样最好的情况可以删除三层点 遍历树的时候有两种 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #506 (Div. 3)题解
妈个蛋,被新手场教做人 不多说进正文 A. Many Equal Substrings time limit per test 1 second memory limit per test 256 m ...
- ZIP文件格式详解(一)——文件数据格式
ZIP文件格式详解(一)--文件数据格式 ------------------------------------------------------------------------------- ...
- OI每周刷题记录——lrllrl
看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...
- python epub解析_python 解析电子书的信息
epub 书是可供人们下载的开放性资源格式的电子图书.epub 文件通常与类似亚马逊Kindle 这样的电子阅读器不兼容. 一个epub 文件包含两个文件:一个包含数据的压缩文件(.zip文件)以及一 ...
- CF 1529C Parsa‘s Humongous Tree
CF 1529C Parsa's Humongous Tree 题意: 给你一颗n个点,n-1个边的树,每个点的点权为一个区间值,树的值为边权和. 边权为该边的两个端点的点权差的绝对值的和 问树的值最 ...
- 【CF 1188 A1,B,C】Add on a Tree // Count Pairs // Array Beauty
传送门 这些天风也温柔,题也温柔 开车啦! 文章目录 A1:Add on a Tree 题意翻译 题解 证明 代码实现 B:Count Pairs 题意翻译 题解 代码实现 C:Array Beaut ...
最新文章
- 『转载』|收藏|一张看懂AI知识体系
- Linux 中 awk命令应用
- Linux下的实模式和保护模式
- php5.4之分布式缓存memcache(windows7下安装配置)
- 聚类算法实践——PCCA、SOM、Affinity Propagation
- MFC粉丝(mfcclub)全自动抢购过程(自动识别输入验证码)
- 【学术】论文返修时,能否增加作者或变更作者顺序?
- 刷手机二维码轻松登机(仅限移动用户)
- 全智通A+常见问题汇总解答—A+人脉关系中的新建权限取消掉后,保存权限,权限依然存在
- Python版实现12306抢票功能,真的能帮你抢到春运回家的票吗?
- 英文状态下输入字母,字母之间的间隔较大怎么解决?
- 虚拟机vs裸金属服务器,裸金属虚拟机
- linux 之top命令详解
- JavaScript 科技推动进步
- 移动端SEO技术难但机会大 优化要点总结
- Python基于Flask框架实现视频直播,电脑桌面录屏web端展示,远程控制电脑
- Gzip Zlib PNG 压缩算法【转】
- 百度智能小程序一面凉经
- java读取文件错误_java读取文件内容错误,确实在这个目录下
- Unity3D 大型游戏 最后一站 源码 部分重点 英雄释放技能(15)