【wikioi】1116 四色问题
2024-10-14 19:14:47
算法:DFS
刚开始卡了一下,但后面想了想,于是
放上代码:
#include <iostream> using namespace std;
bool map[9][9];
int c[9]; //随便命名四种颜色
int ans = 0, N;
//依次枚举每个节点,来试与前面的节点是否有重合的,没有就下一层
void dfs(int n)
{
int i, j;
if(n > N) {ans++; return;}
for(j = 1; j <= 4; j++) //依次枚举4种颜色
{
for(i = 1; i < n; i++) if(map[i][n] && c[i] == j) break; //判断与n是否有链接并且颜色有无重合
if(i == n) //没有重合,拓展下一节点
{
c[n] = j;
dfs(n+1);
c[n] = 0;
}
}
}
int main()
{
cin >> N;
int i, j;
for(i = 1; i <= N; i++) for(j = 1; j <= N; j++) cin >> map[i][j];
dfs(1);
cout << ans;
return 0;
}
最新文章
- 电容与EMC-电容不同功能时对整板EMC的作用
- 【BZOJ-3779】重组病毒 LinkCutTree + 线段树 + DFS序
- fedora22,fedora24最简单的安装virtaulbox的方法
- SSIS 连接ORACLE 无法从 SQL 命令中提取参数的解决方案
- printAB()
- 常用vs快捷键
- php 批量生成html、txt文件
- 用android:clipChildren来实现红心变大特效
- C puzzles详解【34-37题】
- ubuntu12.10升级至14.04
- Python---十年语言之首
- 高级应用与部署 —— 主程序与web目录分离
- jar 打包后的文件执行时出现错误:RunJar jarFile [mainClass] args...
- .net Windows服务程序和安装程序制作图解
- The authenticity of host &#39;172.16.33.53 (172.16.33.53)&#39; can&#39;t be established的问题(日志六)
- beta 分布的详细介绍(转载)
- AI MobileNet
- 如何在表单中使用Ajax
- Java Script正则表达式语法学习
- vue确认密码