哈密顿绕行世界问题、n皇后问题
哈密顿绕行世界问题
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8325 Accepted Submission(s): 4892
Problem Description
Input
Sample Input
1 3 12
2 4 10
3 5 8
1 4 6
5 7 19
6 8 17
4 7 9
8 10 16
3 9 11
10 12 15
2 11 13
12 14 20
13 15 18
11 14 16
9 15 17
7 16 18
14 17 19
6 18 20
1 13 19
5
0
Sample Output
#include<stdio.h>
using namespace std; int map[][]; //记录每个城市的相邻的三个城市
int visited[]; //记录某个城市是否被访问过
int route[]; //记录某条路线经过的城市顺序 int cnt = ; //某一次探路
void dfs(int a, int len, int origin) //三个参数分别为此次探路的起始城市, 距离最初起点的距离, 和最初的起点
{
visited[a] = ; //将a城市标记为访问过
route[len] = a; //并将a放入路线中 for (int i = ; i < ; i++)
{
int t = map[a][i];
if (t == origin && len == ) //如果邻接点是原点且从原点出发经过19段路程,说明找到了一条路径
{
printf("%d: ", ++cnt);
for (int j = ; j <= len; j++) //打印这条路线
printf("%d ", route[j]);
printf("%d\n", origin);
} if (!visited[t])
dfs(t, len + , origin);
} visited[a] = ; //将a城市重新标记为未访问,方便下次探路
} int main()
{
int city; for (int i = ; i <= ; i++)
scanf_s("%d %d %d", &map[i][], &map[i][], &map[i][]);
while (scanf_s("%d", &city), city)
{
dfs(city, , city);
} }
以上转自:https://blog.csdn.net/libin56842/article/details/15028427
N皇后问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 38709 Accepted Submission(s): 16447
Problem Description
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Output
Sample Input
8
5
0
92
10
#include <iostream>
#include <algorithm> using namespace std; int column[]; //每行的皇后的列号
int total = ; /*假设前k个皇后已经放好位置,放入第k+ 1个皇后*/
void Queue(int k, int N)
{
if (k == N)
total++; //排放次数加一 for (int i = ; i <= N; i++) //尝试每个列号
{
int j = ;
for (; j <= k; j++)
{
if (column[j] == i || (k + - j) == abs(i - column[j])) //k + 1的列号可能大于k的列号,所以要加绝对值
break;
} if (j == k + && k + <= N) //说明没有冲突
{
column[k + ] = i; //记录下第k + 1个皇后的列号
Queue(k + , N); //
}
} } int main()
{
int N; int chess[];
for (int i = ; i < ; i++)
{
total = ;
Queue(, i); //前0个皇后位置已摆好
chess[i] = total;
} while (cin >> N && N != )
{
total = chess[N];
cout << total << endl;
} return ;
}
哈密顿绕行世界问题、n皇后问题的更多相关文章
- HDU 2181 哈密顿绕行世界问题(经典DFS+回溯)
哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDOJ 2181 哈密顿绕行世界问题
哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 2181 哈密顿绕行世界问题 (DFS)
哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU2181:哈密顿绕行世界问题(DFS)
哈密顿绕行世界问题 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Sub ...
- 哈密顿绕行世界问题(dfs+记录路径)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2181 哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) ...
- 哈密顿绕行世界问题(hdu2181)
哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Hdu2181 哈密顿绕行世界问题 2017-01-18 14:46 45人阅读 评论(0) 收藏
哈密顿绕行世界问题 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Sub ...
- HDU - 2181 哈密顿绕行世界问题 dfs图的遍历
哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU2181 哈密顿绕行世界问题 —— DFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2181 哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) ...
随机推荐
- 面试官让你讲讲acks参数对消息持久化的影响
(0)写在前面 面试大厂时,一旦简历上写了Kafka,几乎必然会被问到一个问题:说说acks参数对消息持久化的影响? 这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西 ...
- postman(八):使用newman来执行postman脚本
通过之前的了解,我们知道postman是基于javascript语言编写的,而导出的json格式的postman脚本也无法直接在服务器运行,它需要在newman中执行(可以把newman看做postm ...
- mac 安装工具列表
1,jdk idea datagrip 2,maven download 3.1idea config maven 3.2 down load myql connector & datagr ...
- java、maven、tomcat 环境变量配置
Linux 配置java.maven.tomcat 环境变量 打开 /etc/profile 在下面写上 # java env JAVA_HOME=/usr/local/tools/java (j ...
- CentOS7下mariadb日常管理
在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...
- spring cloud(二)服务(注册)中心Eureka
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...
- xml字符串,xml对象,数组之间的相互转化
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { pu ...
- tcp滑动窗口详解(2)
http://blog.csdn.net/yujun00/article/details/636495 ARQ与滑动窗口概念 滑动窗口协议,是TCP使用的一种流量控制方法.该协议允许发送方在停止并等 ...
- Qt 布局管理
在布局编辑环境里: sizePolicy 影响控件在布局上的大小. layout 的属性 如:如margin 设置控件在布局上边距. 有时候需要设置 下面是一个 代码布局的方式 #include &q ...
- Python 3.6.5 导入pymysql模块出错:No module named 'pymysql'
检查一下项目设置中的解释器. 查看是否添加PyMySQL模块,如果没有请添加PyMySQL模块