由于是$2^i$,所以一定要尽量留下来编号大的点

我们干脆就让n号点做树根,它是一定要留的

然后如果要留i的话,i一直到根的路径也都要留。所以只要判断一下够不够把这个路径上还没有留的都留下来

记录下已经留下来的点,然后倍增来找就可以了

然后如果可以的话,可以一个一个往上跳地修改,反正每个点只能被留下来一次,只要跳到了已经留过的点直接结束就行了

 1 #include<bits/stdc++.h>
 2 #define pa pair<int,int>
 3 #define CLR(a,x) memset(a,x,sizeof(a))
 4 using namespace std;
 5 typedef long long ll;
 6 const int maxn=1e6+10;
 7
 8 inline ll rd(){
 9     ll x=0;char c=getchar();int neg=1;
10     while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();}
11     while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
12     return x*neg;
13 }
14
15 int eg[maxn*2][2],egh[maxn],ect;
16 int fa[maxn][21],dep[maxn];
17 int N,K;
18 bool flag[maxn];
19
20 inline void adeg(int a,int b){
21     eg[++ect][0]=b;eg[ect][1]=egh[a];egh[a]=ect;
22 }
23
24 void dfs(int x){
25     for(int i=0;fa[x][i]&&fa[fa[x][i]][i];i++)
26         fa[x][i+1]=fa[fa[x][i]][i];
27     for(int i=egh[x];i;i=eg[i][1]){
28         int b=eg[i][0];if(b==fa[x][0]) continue;
29         fa[b][0]=x;
30         dep[b]=dep[x]+1;dfs(b);
31     }
32 }
33
34 int main(){
35     //freopen("","r",stdin);
36     int i;
37     N=rd(),K=rd();
38     for(i=1;i<N;i++){
39         int a=rd(),b=rd();
40         adeg(a,b);adeg(b,a);
41     }
42     dep[N]=1;dfs(N);
43     K=N-K-1;
44     flag[N]=1;
45     for(i=N-1;i;i--){
46         int x=i,n=0;
47         if(flag[i]) continue;
48         for(int j=log2(dep[x]);j>=0;j--){
49             if(fa[x][j]&&!flag[fa[x][j]])
50                 n+=1<<j,x=fa[x][j];
51         }n++;
52         if(n<=K){
53             K-=n;
54             int x=i;
55             while(!flag[x]) flag[x]=1,x=fa[x][0];
56         }
57     }
58     for(i=1;i<=N;i++) if(!flag[i]) printf("%d ",i);
59     return 0;
60 }

转载于:https://www.cnblogs.com/Ressed/p/9758878.html

cf980E TheNumberGames (贪心+倍增)相关推荐

  1. BZOJ.1178.[APIO2009]会议中心(贪心 倍增)

    BZOJ 洛谷 \(Description\) 给定\(n\)个区间\([L_i,R_i]\),要选出尽量多的区间,并满足它们互不相交.求最多能选出多少个的区间以及字典序最小的方案. \(n\leq2 ...

  2. HDU 4343 贪心+倍增

    Problem DescriptionThis is a very simple question. There are N intervals in number axis, and M queri ...

  3. hdu4343 Interval query【贪心+倍增】

    题目大意: 给定n个数轴上特殊的开区间(l,r),m次询问,每次询问(a,b)之间最多有多少个不相交的特殊区间.(1<=n,m<=100000,0<=l,r,a,b<=1000 ...

  4. LOJ6435【PKUSC2018】星际穿越题解(贪心+倍增)

    题目:LOJ6435. 题目大意:给定一张无向图 n n n个点,表示现在又知道了一些信息为每个点 i i i与编号为 [ l i , i − 1 ] [l_i,i-1] [li​,i−1]的点有连边 ...

  5. CF1088F Ehab and a weird weight formula(树上最优性问题、贪心+倍增)

    Description 给出一棵 n 个结点的树,点 i 有正权值 wiw_iwi​,wiw_iwi​ 互不相同. 除了权值最小的点,保证每个点 u 都有一个邻点 v 使得 wvw_vwv​ < ...

  6. THUWC 2018(游记)

    这次是在雅礼洋湖中学举行的,一所2017年才创办的学校,新的学校, 貌似有些危险,积雪过多屋顶上的冰块砸下来,很容易砸到人, 听说最近就有一个人被砸死了. Day1 昨天睡的比较迟,12点吧,今天早上 ...

  7. 其他算法和思想的题目

    文章目录 代码 排序 位运算 枚举 前缀和差分 二分 贪心 倍增 代码 排序 题目 题意 思路 代码 奇数码问题 给定两个奇数码局面,判断是否可达. 将两个数码写成序列,求逆序对看奇偶性是否相同. 1 ...

  8. gdkoi2018thuwc2018wc2018游记

    emmmmmmm不知道写啥好 不如什么都不写就这样吧 1月25去广州gdkoi滚粗后跑去thuwc继续滚大粗接着wc碎了几天觉接着gg想想到今天回到家已经半个月了呢,干脆几篇游记一起写了吧 1.25下 ...

  9. 在mysql中通配符_mysql查询中通配符的使用

    mysql查询中通配符的使用 在mysql查询中经常会使用通配符,并且mysql的通配符和pgsql的存在区别(稍候再讨论),而且mysql中还可以使用正则表达式. SQL模式匹配: "_& ...

  10. Masonry 布局tag标签(4343排列)

    广告 欢迎大家一起交流 QQ群 139852091 公众号 我是jpg 效果 image.png demo // TagAppDto dto; // List<TagAppDto> dto ...

最新文章

  1. javascript十六进制数字和ASCII字符之间转换
  2. Bytom BIP-32协议和BIP-44协议解读
  3. Angular 7 版本
  4. module ‘mxnet.symbol‘ has no attribute ‘LSoftmax‘
  5. python电脑发音-Python如何实现文本转语音
  6. SpringBoot_02 Spring的Java配置方式
  7. Mapper 接口无法注入或Invalid bound statement (not found)
  8. python123系统基本信息获取_Python运维-获取当前操作系统的各种信息
  9. ASP.NET RouteModule相关的一些东西
  10. (转载)Dig命令的用法
  11. idea中maven下载依赖包出错
  12. 带你了解强大的Cadence家族,你可能只用到了它1/10的工具
  13. GBK内码字符串转Unicode字符串
  14. 用ssms建sql server数据库和python连接到数据库
  15. android面试题2022
  16. Error: Incorrect contents fetched, please reload.
  17. 移动云Mas发送普通短信和模板短信
  18. 波士顿房价预测(终版讲解)
  19. rk3288 Android 8,RK3288W Android8.1开发日志(一)
  20. 构造函数c语言引用,c – 定义的构造函数的“未定义引用”

热门文章

  1. 一个node系统的日志管理
  2. CentOS6/CentOS7系统配置IPv6地址的方法
  3. python爬虫知识点总结(三)urllib库详解
  4. MySQL集群(四)之keepalived实现mysql双主高可用
  5. WindowsServer2012史记2-从03域控升级至2012
  6. Lua5.1中的API函数
  7. React 页面渲染后自动执行onClick事件问题
  8. ACM模板——线段树树状数组ST表
  9. [转帖]Windows7 结束更新 以及后期更新花费。
  10. python_列表——元组——字典——集合