zoukankan      html  css  js  c++  java
  • CodeForces 805E Ice cream coloring

    直觉,构造。

    画了几个样例,发现可以随便构造......先构造根节点的完全图,每个点置为不同的颜色,然后构造儿子节点的完全图......

    #include <cstdio>
    #include <cmath>
    #include <set>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    using namespace std;
    
    int n,m;
    const int maxn = 300010;
    vector<int>g[maxn];
    vector<int>d[maxn];
    int f[maxn];
    int ans[maxn],sz;
    
    int t[maxn];
    
    void dfs(int x)
    {
    	f[x]=1;
    
    	int now = 1;
    	for(int i=0;i<d[x].size();i++) 
    	{
    		int col = d[x][i];
    		t[ans[col]]=1;
    	}
    
    	for(int i=0;i<d[x].size();i++)
    	{
    		int col = d[x][i];
    		if(ans[col]) continue;
    
    		while(1)
    		{
    			if(t[now]) now++;
    			else 
    			{
    				ans[col] = now;
    				t[now]=1;
    				now++;
    				break;
    			}
    		}
    
    	}
    
    	for(int i=0;i<d[x].size();i++) 
    	{
    		int col = d[x][i];
    		t[ans[col]]=0;
    	}
    
    
    	for(int i=0;i<g[x].size();i++)
    	{
    		int to = g[x][i];
    		if(f[to]) continue;
    		dfs(to);
    	}
    }
    
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    	{
    		int sz; scanf("%d",&sz);
    		while(sz--)
    		{
    			int w; scanf("%d",&w);
    			d[i].push_back(w);
    		}
    	}
    
    	for(int i=1;i<n;i++)
    	{
    		int u,v; scanf("%d%d",&u,&v);
    		g[u].push_back(v);
    		g[v].push_back(u);
    	}
    
    	dfs(1);
    
    	for(int i=1;i<=m;i++)
    	{
    		if(ans[i]==0) ans[i] = 1;
    	}
    
    	for(int i=1;i<=m;i++) sz = max(sz,ans[i]);
    	printf("%d
    ",sz);
    	for(int i=1;i<=m;i++) printf("%d ",ans[i]);
    	printf("
    ");
    
    	return 0;
    }
  • 相关阅读:
    安装python官方的mysql库“mysql-connector-python”
    ubuntu(Mint-17)修改dns
    Updating Protobuf and GRPC in Golang
    git切换到远程分支
    ubuntu下取代ping的好工具tcpping
    为什么利率上升,债券价格下降?
    关于债券之我的疑惑
    GitHub超详细图文攻略
    git——从远程库克隆
    git——添加远程库
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6844968.html
Copyright © 2011-2022 走看看