https://codeforces.com/contest/1141/problem/G

题意

在一棵有n个点的树上给边染色,连在同一个点上的边颜色不能相同,除非舍弃掉这个点,问最少需要多少种颜色来染一棵树

题解

  • 选择弃掉度数最高的k个点,然后第k+1个点的度数就是答案

代码

#include<bits/stdc++.h>
#define N 200005
#define pb push_back
using namespace std;
int n,k,u,v,in[N],c[N],m,i;
struct node{
int e,v;
};
vector<node>g[N]; bool cmp(int x,int y){
return x>y;
}
void dfs(int u,int fa,int cl){
for(int i=0;i<g[u].size();i++){
int v=g[u][i].v,id=g[u][i].e;if(v==fa)continue;
if(cl>m)cl-=m;
c[id]=cl++;
dfs(v,u,cl);
}
} int main(){
cin>>n>>k;
for(i=1;i<=n-1;i++){
scanf("%d%d",&u,&v);
in[u]++;in[v]++;
g[u].pb({i,v});
g[v].pb({i,u});
}
sort(in+1,in+n+1,cmp);
m=in[k+1];
dfs(1,0,1);
printf("%d\n",m);
for(i=1;i<=n-1;i++){
printf("%d ",c[i]);
}
}

最新文章

  1. apache tiles 页面模板的使用
  2. C#值类型参数传递的性能开销
  3. 修复AWS上EC2损坏的sshd_config文件
  4. 警惕SQL语句陷井
  5. Leetcode#123 Best Time to Buy and Sell Stock III
  6. join的一对多,去除重复,排序优先的group方法
  7. http://begin.lydsy.com/JudgeOnline/problem.php?id=2770(PKU2503 Babelfish)
  8. 201521123112《Java程序设计》第1周学习总结
  9. C# 使用 SmtpClient.SendAsync 方法发送邮件失败,总是返回 Cancelled
  10. Linux vim常用命令
  11. 使用Atlas进行元数据管理之Type(类型)
  12. List集合和JSON互转工具类
  13. Asp.net core中实现自动更新的Option
  14. 200. Number of Islands(DFS)
  15. Docker服务端和客户端
  16. 2017-6-6&amp;6-8/大型网站架构总结
  17. note:debugging requires the debug connect session system privilege
  18. Git SVN 版本控制 简介 总结 MD
  19. Java架构技术知识点梳理
  20. my SQL Workbench创建数据库

热门文章

  1. 用户名、密码等15个常用的js正则表达式
  2. python学习快人一步,从19个语法开始!
  3. BZOJ 2173 luoguo P4451 [国家集训队]整数的lqp拆分
  4. 性能监控工具以及java堆分析OOM
  5. python中类与对象之继承
  6. POI richText和html的转换案例
  7. centos7下面添加htop工具
  8. 加入 Jungle Testnet
  9. Java学习笔记(二十三):final关键字
  10. VMware12上安装CentOS7无法上网问题