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 ...
随机推荐
- SQL server权限管理和备份实例
权限设置: 1.创建用户zhangsan,并赋予zhangsan有dbcreator的服务器权限. 2.使用zhangsan登录,测试能否创建数据库. 3.使用sa用户附加myschool数据库,设置 ...
- 修改win下ras/pppoe/l2tp等连接数限制
最近宽带重新拔号一直不换ip,拔了十几分钟IP仍然不变,想起几年前的pppoe多拔,多拔几个PPPOE占着老IP,再拔新的IP出来用 注册表路径,子项中查看MatchingDeviceId判断协议类型 ...
- UI(四)之拓扑图创建
关键函数: 1.LoadMap void CTopology::LoadMap() { //m_map.RemoveAllLayers(); AddLayersBasemap(); //AddLaye ...
- python reload(sys)找不到,name 'reload' is not defined和Python3异常-AttributeError: module 'sys' has no att
基于python3.6.1版本,在一个.py文件中,加入这3行:import requests, re, sysreload(sys)sys.setdefaultencoding("utf- ...
- 理解RHEL上安装oracle的配置参数 :/etc/security/limits.conf, /etc/profile, /etc/pam.d/login
无论安装什么版本的Oracle,在安装之前,都需要配置 /etc/pam.d/login /etc/profile /etc/security/limits.conf这三个文件 那这三个文件究 ...
- ipv6导致的域名解析慢,nslookup,lvs,hosts.conf
最近总是反应网站慢,先是查内网环境,又查机房网络环境,再查lvs配置,更查到xen开启导致的网络性能下降 更进一步的查到域名解析慢,最终发现ipv6的默认开启会导致域名解析慢: 而应用服务程序内部大多 ...
- centos 7 安装jira 破解
http://blog.csdn.net/itjinglun/article/details/52240479
- OpenCV——直方图均衡化(用于图像增强)
#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ...
- ocv & derate & crpr
OCV: on-chip-variation 是指芯片在制造工艺P.工作电压V.环境温度T 等参数的局部变化情况下导致的 cell &net delay 变化,比如假设从clk 到两个reg ...
- 【转】常见的Web实时消息交互方式和SignalR
https://www.cnblogs.com/Wddpct/p/5650015.html 前言 1. Web消息交互技术1.1 常见技术1.2 WebSocket介绍1.3 WebSocket示例 ...