最简单的树上染色问题(没有之一)
感觉最近做题都做傻了,这道题居然没有任何思路,(去世摸鱼中)
种植花圃
题目描述
众所周知,蔡老板有一个巨大的庄园。蔡老板已经厌倦了庄园现有的花圃颜色,决定重新对庄园重新种植花圃。为了简化这个问题,我们把蔡老板的庄园抽象成了一个无向连通图 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
最简单的树上染色问题(没有之一)相关推荐
- [BZOJ4033][HAOI2015]树上染色
4033: [HAOI2015]树上染色 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 2108 Solved: 901 [Submit][Sta ...
- Luogu P3177 [HAOI2015] 树上染色(树上背包)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...
- 【HAOI2015】树上染色
[HAOI2015]树上染色 这题思路好神仙啊,首先显然是树形dp,f[i][j]表示在以i为根的子树中选j个黑点对答案的贡献(并不是当前子树最大值),dp时只考虑i与儿子连边的贡献.此时(i,son ...
- [BZOJ4033][HAOI2015]树上染色(树形DP)
4033: [HAOI2015]树上染色 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 2437 Solved: 1034 [Submit][St ...
- bzoj4033: [HAOI2015]树上染色(树形dp)
4033: [HAOI2015]树上染色 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 3269 Solved: 1413 [Submit][St ...
- bzoj 4033: [HAOI2015]树上染色(树形DP)
4033: [HAOI2015]树上染色 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1786 Solved: 754 [Submit][Sta ...
- 洛谷 P3177 [HAOI2015]树上染色
题目链接 题目描述 有一棵点数为 \(N\) 的树,树边有边权.给你一个在 \(0~ N\) 之内的正整数 \(K\) ,你要在这棵树中选择 \(K\)个点,将其染成黑色,并将其他 的\(N-K\)个 ...
- [HAOI2015]树上染色(树形dp,树形背包)
链接:https://ac.nowcoder.com/acm/problem/19996 来源:牛客网 题目描述 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个 ...
- [HAOI2015]树上染色(树形背包)
有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之间的距离加 ...
最新文章
- 程振波 算法设计与分析_算法分析与设计之动态规划
- 怎样使用element-starter快速搭建ElementUI项目
- oracle is ref cursor java_oracle cursor 用法总结
- perl 哈希数组的哈希_使用哈希检查两个数组是否相似
- html 控制文字的标签,html里面有一个控制文字滚动的标签marquee,比较有用。
- Thymeleaf $/*/#/@语法
- 基于WF的意见征集6(浅析)
- 【深度学习】什么是深度学习-1
- Github emoji 表情包大全
- ckplayer php,ckplayer播放器
- 接上一篇:Java实现导出Excel并附带水印
- Word文档最后一页总是删除不掉怎么办?
- 拼多多API接口介绍
- Java Swing写简单计算器以及拓展贷款计算器(等额本息和等额本金计算可以单独拿出来用)
- 在python中查看关键字、需要在解释器中执行_现有代码 d={},在python3解释器中执行 d[([1,2])] = 'b'得到的结果为():...
- React——UI框架 Antd 、Element
- 景安 虚拟主机 自有SSL证书
- 华为双卡双待手机联通3G上网慢的解决办法
- 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.14 平移、旋转、缩放
- wnmp mysql_WNMP环境搭建(win10+Ndinx1.9.15+MySQL5.7.12+PHP5.6.21)
热门文章
- vue插件开发、文档书写、github发布、npm包发布一波流
- 常用邮箱、网盘地址列表
- springboot启动失败的原因及其解决方法
- C++学习日记#1.1——四元一次方程组进行Sor松弛迭代法求解(现已推向n元一次方程组进行Sor松弛迭代法求解)
- 社区发现算法FastUnfolding的GraphX实现(转载)
- MethodType用法和setattr区别
- Doolittle分解法(LU分解法)的Python实现
- 数据库读写分离(二)
- 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointMission
- n76e003引脚图_N76E003 复位引脚(P20)配置为输入的两种方法