感觉最近做题都做傻了,这道题居然没有任何思路,(去世摸鱼中)

种植花圃

题目描述

众所周知,蔡老板有一个巨大的庄园。蔡老板已经厌倦了庄园现有的花圃颜色,决定重新对庄园重新种植花圃。为了简化这个问题,我们把蔡老板的庄园抽象成了一个无向连通图 GG 。他的每一块花圃被抽象成了图中的一个顶点,相邻的花圃所表示的结点之间有连边。

蔡老板一共采购了 mm 种不同的颜色的花。他要用这些颜色的花为他的庄园换色,而且每一个花圃有且只能有一种颜色的花。即图中每个顶点只能着一种颜色。

如果有一种种植的方案使得蔡老板的庄园中相邻的花圃着不同颜色,则称这个庄园是 mm 可着色的。蔡老板现在想找出所有不同的着色法。

输入

第 11 行有 33 个正整数 nn , kk 和 mm ,表示给定的图 GG 有 nn 个顶点和 kk 条边, mm 种颜色。顶点编号为 11 , 22 , ⋯⋯ ,nn 。

接下来的 kk 行中,每行有 22 个正整数 uu , vv ,表示图 GG 的一条边 (u,v)(u,v) 。

输出

输出包含一个整数,表示计算出的不同的着色方案数输出。

样例

输入

5 8 4
1 2
1 3
1 4
2 3
2 4
2 5
3 4
4 5

输出

48

限制与约定

对于所有数据 n≤100n≤100 , k≤2500k≤2500 , m≤5m≤5

时间限制:1 s

空间限制:128 MB

因为数据很小,所以直接模拟染色就行了,说实话这可能还不算是一道树上染色问题(题目打脸);

dfs搞定

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,k,m;
int g[3000][3000];
int col[3000];
int ans,flag;
void dfs(int x)
{if(x==n+1){ans++;return ;}for(int i=1;i<=m;i++){flag=0;for(int j=1;j<=n;j++){if(g[x][j]&&col[j]==i){flag=1;break;}}if(flag==1) continue;col[x]=i;dfs(x+1);col[x]=0;}
}
int main()
{scanf("%d%d%d",&n,&k,&m);for(int i=1;i<=k;i++){int x,y;scanf("%d%d",&x,&y);g[x][y]=1;g[y][x]=1;}dfs(1);printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/WHFF521/p/11327814.html

最简单的树上染色问题(没有之一)相关推荐

  1. [BZOJ4033][HAOI2015]树上染色

    4033: [HAOI2015]树上染色 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 2108  Solved: 901 [Submit][Sta ...

  2. Luogu P3177 [HAOI2015] 树上染色(树上背包)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...

  3. 【HAOI2015】树上染色

    [HAOI2015]树上染色 这题思路好神仙啊,首先显然是树形dp,f[i][j]表示在以i为根的子树中选j个黑点对答案的贡献(并不是当前子树最大值),dp时只考虑i与儿子连边的贡献.此时(i,son ...

  4. [BZOJ4033][HAOI2015]树上染色(树形DP)

    4033: [HAOI2015]树上染色 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 2437  Solved: 1034 [Submit][St ...

  5. bzoj4033: [HAOI2015]树上染色(树形dp)

    4033: [HAOI2015]树上染色 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 3269  Solved: 1413 [Submit][St ...

  6. bzoj 4033: [HAOI2015]树上染色(树形DP)

    4033: [HAOI2015]树上染色 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1786  Solved: 754 [Submit][Sta ...

  7. 洛谷 P3177 [HAOI2015]树上染色

    题目链接 题目描述 有一棵点数为 \(N\) 的树,树边有边权.给你一个在 \(0~ N\) 之内的正整数 \(K\) ,你要在这棵树中选择 \(K\)个点,将其染成黑色,并将其他 的\(N-K\)个 ...

  8. [HAOI2015]树上染色(树形dp,树形背包)

    链接:https://ac.nowcoder.com/acm/problem/19996 来源:牛客网 题目描述 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个 ...

  9. [HAOI2015]树上染色(树形背包)

    有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之间的距离加 ...

最新文章

  1. 程振波 算法设计与分析_算法分析与设计之动态规划
  2. 怎样使用element-starter快速搭建ElementUI项目
  3. oracle is ref cursor java_oracle cursor 用法总结
  4. perl 哈希数组的哈希_使用哈希检查两个数组是否相似
  5. html 控制文字的标签,html里面有一个控制文字滚动的标签marquee,比较有用。
  6. Thymeleaf $/*/#/@语法
  7. 基于WF的意见征集6(浅析)
  8. 【深度学习】什么是深度学习-1
  9. Github emoji 表情包大全
  10. ckplayer php,ckplayer播放器
  11. 接上一篇:Java实现导出Excel并附带水印
  12. Word文档最后一页总是删除不掉怎么办?
  13. 拼多多API接口介绍
  14. Java Swing写简单计算器以及拓展贷款计算器(等额本息和等额本金计算可以单独拿出来用)
  15. 在python中查看关键字、需要在解释器中执行_现有代码 d={},在python3解释器中执行 d[([1,2])] = 'b'得到的结果为():...
  16. React——UI框架 Antd 、Element
  17. 景安 虚拟主机 自有SSL证书
  18. 华为双卡双待手机联通3G上网慢的解决办法
  19. 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.14 平移、旋转、缩放
  20. wnmp mysql_WNMP环境搭建(win10+Ndinx1.9.15+MySQL5.7.12+PHP5.6.21)

热门文章

  1. vue插件开发、文档书写、github发布、npm包发布一波流
  2. 常用邮箱、网盘地址列表
  3. springboot启动失败的原因及其解决方法
  4. C++学习日记#1.1——四元一次方程组进行Sor松弛迭代法求解(现已推向n元一次方程组进行Sor松弛迭代法求解)
  5. 社区发现算法FastUnfolding的GraphX实现(转载)
  6. MethodType用法和setattr区别
  7. Doolittle分解法(LU分解法)的Python实现
  8. 数据库读写分离(二)
  9. 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointMission
  10. n76e003引脚图_N76E003 复位引脚(P20)配置为输入的两种方法