将军令将军令将军令


Description

链接


Solution

不断从深度最大的节点的KKK级父节点进行扩展


Attention

注意 扩展 时使用 DFSDFSDFS, 因为 BFSBFSBFS 保存上一个经过的节点较麻烦
代码中有BFSBFSBFS 函数, 仅供参考, 由于回环往复地入队, TLETLETLE 不可避免,


Code

#include<bits/stdc++.h>
#define reg registerint read(){int s = 0, flag = 1;char c;while((c=getchar()) && !isdigit(c))if(c == '-'){ c = getchar(), flag = -1; break ; }while(isdigit(c)) s = s*10 + c-'0', c = getchar();return s * flag;
}const int maxn = 100005;int N;
int K;
int num0;
int Ans;
int head[maxn];
int Fa[maxn];
int f[maxn], Used[maxn];
std::queue <int> Q;struct Edge{ int nxt, to; } edge[maxn << 1];void Add(int from, int to){ edge[++ num0] = (Edge){ head[from], to }; head[from] = num0; }void BFS(int k){while(!Q.empty()) Q.pop();Q.push(k); f[k] = K, Used[k] = 1;while(!Q.empty()){int ft = Q.front(); Q.pop();for(reg int i = head[ft]; i; i = edge[i].nxt){int to = edge[i].to;if(Used[to]) continue ;Used[to] = 1;if(f[ft]-1) f[to] = f[ft] - 1, Q.push(to);}}
}struct Node{int dep, id;
} T[maxn];void DFS(int k, int fa){T[k].id = k;Fa[k] = fa;T[k].dep = T[fa].dep + 1;for(reg int i = head[k]; i; i = edge[i].nxt){int to = edge[i].to;if(to == fa) continue ;DFS(to, k);}
}void DFS_2(int k, int left, int last){Used[k] = 1;if(!left) return ;for(reg int i = head[k]; i; i = edge[i].nxt){int to = edge[i].to;if(to == last) continue ;DFS_2(to, left-1, k);}
}bool cmp(Node a, Node b){ return a.dep < b.dep; }int main(){N = read(), K = read();int ____ = read();if(!K){ printf("%d\n", N); return 0; }for(reg int i = 1; i < N; i ++){int u = read(), v = read();Add(u, v), Add(v, u);}DFS(1, 0);std::sort(T+1, T+N+1, cmp);for(reg int i = N; i >= 1; i --){int t = T[i].id;if(!Used[t]){for(reg int j = 1; j <= K; j ++) if(Fa[t]) t = Fa[t];else break ;DFS_2(t, K, 0), Ans ++;}}printf("%d\n", Ans);return 0;
}

P3942 将军令 [贪心]相关推荐

  1. 8.11 NOIP模拟测试17 入阵曲+将军令+星空

    T1 入阵曲 前缀和维护可以得60分 f[x1][y1][x2][y2]=sum[x2][y2]-sum[x1-1][y2]-sum[x2][y1-1]+sum[x1-1][y1-1];  O(n4) ...

  2. 【题解】将军令 Luogu P3942 (未完成)

    历史/落在/赢家/之手 至少/我们/拥有/传说 谁说/败者/无法/不朽 拳头/只能/让人/低头 念头/却能/让人/抬头 抬头/去看/去爱/去追 你心中的梦 将军令 题目描述 又想起了四月. 如果不是省 ...

  3. NOIP模拟测试17「入阵曲·将军令·星空」

    入阵曲 题解 应用了一种美妙移项思想, 我们先考虑在一维上的做法 维护前缀和$(sum[r]-sum[l-1])\%k==0$可以转化为 $sum[r]\% k==sum[l-1]\%k$开个桶维护一 ...

  4. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  5. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  6. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  7. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  8. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  9. 贪心:expedition 最优加油方法

    已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个 ...

最新文章

  1. 配置Android开发环境(fedora)
  2. Snapchat - give sum target listInteger first who hits target wins
  3. python起步输入-《Python编程:从入门到实践》第一章:起步
  4. UFLDL 教程学习笔记(一)
  5. android 可以搜索到热点 连接时显示未找到热点_魔兽世界地精经典语录:时间就是金钱!8266互联网时间显示器教程...
  6. Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案
  7. LeetCode 1774. 最接近目标价格的甜点成本(DFS / 01背包)
  8. 云原生时代,政企混合云场景IT监控和诊断的难点和应对之道
  9. python读取xml文件内容_python读取xml文件
  10. sql管理器指定服务器名字,如何修改sql server 服务管理器 服务器名称
  11. java布类型的常量,java数据类型;常量与变量;
  12. 《C语言及程序设计》实践参考——输出小星星(全解)
  13. python如何调用tess_python下以api形式调用tesseract识别图片验证码
  14. devc 能优化吗_小网站能做seo优化吗?如何为小公司网站做seo优化?
  15. 图片太模糊?这几个工具可以将图片变清晰
  16. 用FCM函数实现模糊C均值聚类算法
  17. my ReadBook_liutongjingjixue / circulation economics
  18. 基于.net实现F4一键杀死指定进程(龙之谷秒掉器)
  19. e900v21e 装第三方_创维e900v21e刷机包
  20. 如何使用 Windows 电脑向 Android 设备安装 apk 应用

热门文章

  1. 外媒:三星确认Galaxy S10 5G版4月5日开始销售
  2. 全新安装Windows10系统(PE下)
  3. tp5实现微信小程序支付
  4. Mysql数据库与数据库三大范式
  5. 【外汇天眼】外汇周回顾:MT5发布新功能,M4Markets收购计划成功
  6. Python机器学习-搭建神经网络以及数据集引入和断点续存
  7. 在本机搭建FTP服务器
  8. SparkStreaming面试题
  9. matlab设置图片的比例,Matlab 画图字体,字号的设定,图片大小和比例
  10. 天辰的救赎(JS)第三章(胖虎的指引)