codeforces 1141G Privatization of Roads in Treeland
题目链接:http://codeforces.com/contest/1141/problem/G
题目大意:
给你一个无向连通图。每条边都有颜色,如果存在一个点的临边中有超过两条边颜色相同,这个点就不好。你要用最少的颜色涂完所有的边,保证不好的点不超过k。
反正吧,我没想过cfG题会这么水。不过过的人还真挺少的。(QaQ,比赛没看这题被F2空间卡崩了)
思路:
先离线处理下。
先记录所有点的度,然后大到小排序。找到度第k+1大的度。
这个度就是答案。
因为我可以认为大于答案的度的点都是不好的;
我们怎么找到这些点呢?
dfs遍历。
对于不好的点直接全部画1就好了。
#include <bits/stdc++.h>
using namespace std; //#define int long long
#define MAX 200010
#define fi first
#define se second map< pair<int,int> ,int>ans;
pair<int,int> x[MAX];
vector <int> y[MAX];
int z[MAX];
bool k[MAX]; bool cmp(const int a,const int b)
{
return a>b;
}
int Ans;
void dfs(int r,int b)
{
if(k[r])
{
return;
}
k[r]=true; int len=y[r].size(); if(len>Ans)
{
for(int i=; i<len; i++)
{
if(k[y[r][i]])continue;
ans[make_pair(r,y[r][i])]=;
ans[make_pair(y[r][i],r)]=;
dfs(y[r][i],);
}
}
else{
bool kk=false;
int cer=;
for(int i=; i<len; i++)
{
if(k[y[r][i]])continue;
cer++;
if(cer==b){
kk=true;
}
ans[make_pair(r,y[r][i])]=cer+kk;
ans[make_pair(y[r][i],r)]=cer+kk;
dfs(y[r][i],cer+kk);
}
} }
signed main()
{
ios::sync_with_stdio(false); int n,k; cin>>n>>k; for(int i=; i<=n-; i++)
{
cin>>x[i].fi>>x[i].se;
z[x[i].fi]++;
z[x[i].se]++;
y[x[i].fi].push_back(x[i].se);
y[x[i].se].push_back(x[i].fi);
} sort(z+,z++n,cmp); Ans=z[k+]; cout<<Ans<<endl;
dfs(,); for(int i=;i<n;i++){
cout<<ans[x[i]]<<" ";
}
return ;
}
codeforces 1141G Privatization of Roads in Treeland的更多相关文章
- 【CF1141G】Privatization of Roads in Treeland
题目大意:给定一个 N 个点的无根树,现给这个树进行染色.定义一个节点是坏点,若满足与该节点相连的至少两条边是相同的颜色,求至多有 k 个坏点的情况下最少需要几种颜色才能进行合法染色. 题解:考虑一个 ...
- Codeforces 191C Fools and Roads(树链拆分)
题目链接:Codeforces 191C Fools and Roads 题目大意:给定一个N节点的数.然后有M次操作,每次从u移动到v.问说每条边被移动过的次数. 解题思路:树链剖分维护边,用一个数 ...
- Codeforces 806 D.Prishable Roads
Codeforces 806 D.Prishable Roads 题目大意:给出一张完全图,你需要选取其中的一些有向边,连成一个树形图,树形图中每个点的贡献是其到根节点路径上每一条边的边权最小值,现在 ...
- codeforces 711D D. Directed Roads(dfs)
题目链接: D. Directed Roads time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- Codeforces 711 D. Directed Roads (DFS判环)
题目链接:http://codeforces.com/problemset/problem/711/D 给你一个n个节点n条边的有向图,可以把一条边反向,现在问有多少种方式可以使这个图没有环. 每个连 ...
- Codeforces 746 G. New Roads
题目链接:http://codeforces.com/contest/746/problem/G mamaya,不知道YY了一个什么做法就这样过去了啊 2333 首先我显然可以随便构造出一棵树满足他所 ...
- Codeforces 543.B Destroying Roads
B. Destroying Roads time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 【CodeForces】671 D. Roads in Yusland
[题目]D. Roads in Yusland [题意]给定n个点的树,m条从下往上的链,每条链代价ci,求最少代价使得链覆盖所有边.n,m<=3*10^5,ci<=10^9,time=4 ...
- Codeforces 583 DIV2 Asphalting Roads 模拟
原题链接:http://codeforces.com/problemset/problem/583/A 题意: 很迷很迷,表示没看懂..但是你看样例就秒懂了 题解: 照着样例模拟就好 代码: #inc ...
随机推荐
- 【爬坑】运行 Hadoop 的 MapReduce 示例卡住了
1. 问题说明 在以伪分布式模式运行 Hadoop 自带的 MapReduce 示例,卡在了 Running job ,如图所示 2. 解决过程 查看日志没得到有用的信息 再次确认配置信息没有错误信息 ...
- mybatis 中的<![CDATA[ ]]>
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...
- C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框
诚意满满直接上代码: static void Main(string[] args) { //Main函数中增加此句 AppDomain.CurrentDomain.UnhandledExceptio ...
- glViewport()函数和glOrtho()函数的理解(转)
http://www.cnblogs.com/yxnchinahlj/archive/2010/10/30/1865298.html 在OpenGL中有两个比较重要的投影变换函数,glViewport ...
- TiDB数据库 mydumper命令导出数据报错:(mydumper:1908): CRITICAL **: Couldn't acquire global lock, snapshots will not be consistent: Access denied for user 'super'@'%' (using password: YES)
今天想使用Tidb官方提供的mydumper来备份AWS上的RDS集群中mysql数据库的某个表,发现报错了 [tidb@:xxx /usr/local/tidb-tools]$ -t -F -B x ...
- PyQt5--QSlide
# -*- coding:utf-8 -*- ''' Created on Sep 20, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...
- Linux备份压缩命令
gzip 命令 把/home/chenjialins目录下的familyA目录下所有文件压缩成.gz文件cd /home/chenjialinstar -cvf /home/chenjialins/f ...
- javascrpt each map
each方法: 定义一个空数组,通过each方法,往数组添加ID值:最后将数组转换成字符串后,alert这个值: $(function(){ var arr = []; $(":checkb ...
- poj 1364 King(线性差分约束+超级源点+spfa判负环)
King Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14791 Accepted: 5226 Description ...
- 用python2.7.9 写个小程序搜索某个目录下行有某关键字
# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding("utf-8")import os def p ...