【codevs1116】四色问题,深搜入门题目
(说实话我已开始是不想写这道题目的,因为太水了,但是发现最近实在是打不出什么好一些的题目,所以就凑活一下好了)
1116 四色问题
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
题解
题目描述 Description
给定N(小于等于8)个点的地图,以及地图上各点的相邻关系,请输出用4种颜色将地图涂色的所有方案数(要求相邻两点不能涂成相同的颜色)
数据中0代表不相邻,1代表相邻
输入描述 Input Description
第一行一个整数n,代表地图上有n个点
接下来n行,每行n个整数,每个整数是0或者1。第i行第j列的值代表了第i个点和第j个点之间是相邻的还是不相邻,相邻就是1,不相邻就是0.
我们保证a[i][j] = a[j][i] (a[i,j] = a[j,i])
输出描述 Output Description
染色的方案数
样例输入 Sample Input
8
0 0 0 1 0 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
1 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
样例输出 Sample Output
15552
数据范围及提示 Data Size & Hint
n<=8
比较基础的深搜题目,从一个点向四周寻找就可以了,注意用一个数组来判断颜色即可
#include<cstdio>
using namespace std;
int a[10][10],n,ans,b[10];
void f(int x)
{for (int i=1;i<=4;i++)//分别表示四种颜色{bool flag=true;for (int j=1;j<=n;j++) if (a[x][j]==1&&b[j]==i) {flag=false;break;} //b[j]==1表明已有相邻点是相同颜色if (flag) {b[x]=i;if (x==n) ans++;else f(x+1);b[x]=0;}}
}
main()
{scanf("%d",&n);for (int i=1;i<=n;i++)for (int j=1;j<=n;j++) scanf("%d",&a[i][j]); f(1);printf("%d",ans);
}
【codevs1116】四色问题,深搜入门题目相关推荐
- hdu 1312深搜入门题
2019独角兽企业重金招聘Python工程师标准>>> Red and Black Problem Description There is a rectangular room, ...
- DSF深搜入门全排列笔记nyoj366
DFS深搜之全排列(初学) 题目描述 思路解析与dfs模板伪代码 题目描述 以nyoj2.0 366题为例,记录入门dfs的代码,并理清思路,方便以后复习巩固,初学dfs如果有问题还请指出~ 链接: ...
- acm公选课第三节4.7直播4.9补 递归 深搜啥的
今天主要讲递归 深搜 dp做准备, 能看到算法复杂度 要真正理解:(从上往下扎,到边界结束,再一层一层往上返) 下图:第一行时边界,第二行时递归模式 爆了: RE:(我也出过原来是这样) 递推就行 老 ...
- 题解HDU6148 Valley Numer(数位DP+深搜DFS)
题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...
- L2-026 小字辈 (25 分)(深搜详解)
本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) -- 简单起见,我们把家族成员从 1 到 N 编号.随后第二行 ...
- 深搜DFS\广搜BFS 图初步入门
首先,不管是BFS还是DFS,由于时间和空间的局限性,它们只能解决数据量比较小的问题. 深搜,顾名思义,它从某个状态开始,不断的转移状态,直到无法转移,然后退回到上一步的状态,继续转移到其他状态,不断 ...
- 有趣的题目:简单深搜之数独与靶型数独--二进制状压加速与dfs数独剪枝
Sudoku Time Limit: 2000MS Memory Limit: 65536K 题目链接http://poj.org/problem?id=2676 Description Sudo ...
- 【DFS深搜】四色问题
题目 问题描述: 设有图4-11所示地图,每个区域代表一个省,区域中的数字代表省的编号,今将每个省涂上红(R),兰(B),黄(Y),白(W)四种颜色之一,使相邻的省份不同颜色,且第一种颜色必须填1. ...
- dfs算法题目(深搜思想训练)
迷宫游戏 我们用一个二维的字符数组来表示前面画出的迷宫: 其中字符S表示起点,字符T表示终点,字符*表示墙壁,字符.表示平地.你需要从S出发走到T,每次只能向上下左右相邻的位置移动,不能走出地图,也不 ...
最新文章
- mariadb自动安装脚本
- 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
- Python报错TypeError: ‘User‘ object is not iterable
- oracle io lost,磁盘IO故障
- 如何彻底卸载MySQL
- 【Flink】Flink 1.14 版本 新特性 Barrier 在流经算子做 checkpoint Barrier跳过 unaligned checkpoint
- 微软Windows2003的正版安装序列号
- win32 api 显示一张位图的简单代码,释疑用的。
- 二分查找法最大最小比较次数
- linux远程连接交换机,总结:交换机远程登陆的两种方式,Telnet与SSH那种好?
- dos命令查看电脑配置
- Raspberry Pi 树莓派切换国内源
- Vue.js下载与安装
- 简述自动化测试实习收获
- 柯西分布——正态分布的兄弟
- 蓝桥杯单片机决赛(国赛)第十一届题目加代码
- 数据挖掘-二项逻辑斯蒂回归模型算法的R实现
- 北京一卡通以35288.8529万元挂牌出让68.45%股权,溢价率为84%
- 【android】超级详细Android Studio下载安装教程(附:JDK1.8安装教程)
- 四年级计算机期末质量分析,四年级数学期末试卷质量分析
热门文章
- 华为云车联网解决方案
- 免费试用 | 多模 NoSQL 服务GeminiDB for Cassandra 全球首发
- 【华为大咖分享】5.交付在云端-全云DevOps研发实践(后附PPT下载地址)
- clickhouse hadoop_ClickHouse如何实现存算分离?
- Hive数据据类型 DDL DML
- Kotlin学习笔记 第四章 Java调用Kotlin
- php中数据库怎样增加一列,php – 向wordpress数据库添加新列
- C++ Primer Plus第二章课后编程答案
- Ubuntu18.04下安装OpenCV依赖包出现ibjasper-dev无法安装的问题
- matlab与python实现神经网络_Adaline神经网络简单介绍和MATLAB简单实现