昨晚随便玩玩搞个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相关推荐

  1. CF 375D. Tree and Queries加强版!!!【dfs序分块 大小分类讨论】

    传送门 题意: 一棵树,询问一个子树内出现次数$\ge k$的颜色有几种,Candy?这个沙茶自带强制在线 吐槽: 本来一道可以离散的莫队我非要强制在线用分块做:上午就开始写了然后发现思路错了...: ...

  2. Codeforces Round #506 (Div. 3) - E. Tree with Small Distances

    题目链接 题意 给你一棵树,最多加几条边,使点1到所有的点的最大距离不超过2 AC 贪心 从距离最远的点开始,找到他的父节点,然后把父节点相连的点删去,这样最好的情况可以删除三层点 遍历树的时候有两种 ...

  3. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  4. Codeforces Round #506 (Div. 3)题解

    妈个蛋,被新手场教做人 不多说进正文 A. Many Equal Substrings time limit per test 1 second memory limit per test 256 m ...

  5. ZIP文件格式详解(一)——文件数据格式

    ZIP文件格式详解(一)--文件数据格式 ------------------------------------------------------------------------------- ...

  6. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

  7. python epub解析_python 解析电子书的信息

    epub 书是可供人们下载的开放性资源格式的电子图书.epub 文件通常与类似亚马逊Kindle 这样的电子阅读器不兼容. 一个epub 文件包含两个文件:一个包含数据的压缩文件(.zip文件)以及一 ...

  8. CF 1529C Parsa‘s Humongous Tree

    CF 1529C Parsa's Humongous Tree 题意: 给你一颗n个点,n-1个边的树,每个点的点权为一个区间值,树的值为边权和. 边权为该边的两个端点的点权差的绝对值的和 问树的值最 ...

  9. 【CF 1188 A1,B,C】Add on a Tree // Count Pairs // Array Beauty

    传送门 这些天风也温柔,题也温柔 开车啦! 文章目录 A1:Add on a Tree 题意翻译 题解 证明 代码实现 B:Count Pairs 题意翻译 题解 代码实现 C:Array Beaut ...

最新文章

  1. 『转载』|收藏|一张看懂AI知识体系
  2. Linux 中 awk命令应用
  3. Linux下的实模式和保护模式
  4. php5.4之分布式缓存memcache(windows7下安装配置)
  5. 聚类算法实践——PCCA、SOM、Affinity Propagation
  6. MFC粉丝(mfcclub)全自动抢购过程(自动识别输入验证码)
  7. 【学术】论文返修时,能否增加作者或变更作者顺序?
  8. 刷手机二维码轻松登机(仅限移动用户)
  9. 全智通A+常见问题汇总解答—A+人脉关系中的新建权限取消掉后,保存权限,权限依然存在
  10. Python版实现12306抢票功能,真的能帮你抢到春运回家的票吗?
  11. 英文状态下输入字母,字母之间的间隔较大怎么解决?
  12. 虚拟机vs裸金属服务器,裸金属虚拟机
  13. linux 之top命令详解
  14. JavaScript 科技推动进步
  15. 移动端SEO技术难但机会大 优化要点总结
  16. Python基于Flask框架实现视频直播,电脑桌面录屏web端展示,远程控制电脑
  17. Gzip Zlib PNG 压缩算法【转】
  18. 百度智能小程序一面凉经
  19. java读取文件错误_java读取文件内容错误,确实在这个目录下
  20. Unity3D 大型游戏 最后一站 源码 部分重点 英雄释放技能(15)

热门文章

  1. SpringBoot2.3 修改响应头、添加更新token、解决在过滤器中修改失败
  2. 微机原理—定时计数控制接口
  3. 微信支付回调重复通知,正确的响应
  4. 抽样方法,采样方法 shuffle
  5. pytorch问题索引
  6. 华为公有云架构解决方案
  7. MinkowskiEngine Miscellaneous Classes杂类
  8. GPU上如何优化卷积
  9. NVIDIA深度学习Tensor Core性能解析(下)
  10. 服务器技术综述(四)