• 洛谷 P3155 [CQOI2009]叶子的染色


    洛谷 P3155 [CQOI2009]叶子的染色

    洛谷传送门

    题目描述

    给一棵 mm 个结点的无根树,你可以选择一个度数大于 11 的结点作为根,然后给一些结点(根、内部结点和叶子均可)着以黑色或白色。

    你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含一个有色结点(哪怕是这个叶子本身)。

    对于每个叶结点 uu,定义 c_uc**u 为从根结点从 uu 的简单路径上最后一个有色结点的颜色。给出每个 c_uc**u 的值,设计着色方案,使得着色结点的个数尽量少。

    输入格式

    第一行包含两个整数 m,nm,n,其中 nn 是叶子的个数,mm 是结点总数。结点编号为 1,2,ldots,m1,2,…,m,其中编号 1,2,ldots ,n1,2,…,n 是叶子。

    以下 nn 行每行一个 00 或 11 的整数(00 表示黑色,11 表示白色),依次为 c_1,c_2,ldots,c_nc1,c2,…,c**n

    以下 m-1m−1 行每行两个整数 a,ba,b,表示结点 aa 和 bb 有边相连。

    输出格式

    仅一个数,即着色结点数的最小值。


    题解:

    2020.11.14模拟赛T3满分场

    树形DP。

    展示了一下树形DP的宝贵心路历程。

    代码:

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxn=1e6+6;
    int n,m;
    int opt[maxn],cnt[2];
    int tot,head[maxn],nxt[maxn<<1],to[maxn<<1];
    int dp[maxn][2];
    void add(int x,int y)
    {
    	to[++tot]=y;
    	nxt[tot]=head[x];
    	head[x]=tot;
    }
    void dfs(int x,int f)
    {
    	if(x<=m)
    	{
    		if(opt[x])
    			dp[x][0]=1;
    		else
    			dp[x][1]=1;
    		return;
    	}
    	int tmp0=0,tmp1=0;
    	for(int i=head[x];i;i=nxt[i])
    	{
    		int y=to[i];
    		if(y==f)
    			continue;
    		dfs(y,x);
    		tmp0+=dp[y][0];
    		tmp1+=dp[y][1];
    	}
    	dp[x][0]=min(tmp0,tmp1+1);
    	dp[x][1]=min(tmp0+1,tmp1);
    }
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=m;i++)
    		scanf("%d",&opt[i]);
    	for(int i=1;i<n;i++)
    	{
    		int x,y;
    		scanf("%d%d",&x,&y);
    		add(x,y);
    		add(y,x);
    	}
    	dfs(m+1,0);
    	int tmp0=0,tmp1=0;
    	int x=m+1;
    	for(int i=head[x];i;i=nxt[i])
    	{
    		int y=to[i];
    		tmp0+=dp[y][0];
    		tmp1+=dp[y][1];
    	}
    	int ans=min(tmp0,tmp1);
    	printf("%d
    ",ans+1);
    	return 0;
    }
    
  • 相关阅读:
    根据屏幕大小,加载不同大小的图片
    规范命名CSS
    iframe框架加载完成后执行函数
    js获取IP地址
    80端口被System占用 造成Apache不能启动的解方案
    自定义一个仿Spinner
    让你的代码量减少3倍!使用kotlin开发Android(一)
    屏幕适配
    一个旋转菜单
    手势监听GestureDetector 案例
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13973134.html
Copyright © 2020-2023  润新知