哈密顿绕行世界问题、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) ...
随机推荐
- ECharts注释
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts</t ...
- 《剑指offer》总结二 之二叉树
目录 17.树的子结构(27ms,5836k) 18.二叉树的镜像(38ms) 22.从上往下打印二叉树(50ms,5832k) 24.二叉树中和为某一值的路径(26ms,5728k) 38.二叉树的 ...
- mac os使用迁移助手之后运行php报:dyld相关错误,错误排错流程分析
在执行php相关命令的时候,报如下错误: dyld: Library not loaded:/usr/local/opt/openldap/lib/libldap-2.4.2.dylib Refere ...
- selenium java maven自动化测试环境搭建
版本说明: JDK 版本:1.8.0_112: Eclipse IDE: 4.6.1: Maven 版本:apache-maven-3.3.9: Selenium 版本: 3.0.1: Firefox ...
- Linux下更换jdk和配置环境变量
目前Linux上安装的是jdk7的java环境,由于项目原因需要升级到jdk8,无需卸载掉原本的jdk7,按如下简单步骤即可: 参考了:https://www.cnblogs.com/jiu0821/ ...
- 1023. Camelcase Matching驼峰式匹配
网址:https://leetcode.com/problems/camelcase-matching/ 依题意可得逻辑 class Solution { public: vector<bool ...
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map
MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map 一.前言 MapServer拥有非常灵活的标签 ...
- JavaScript HTML DOM - 改变 CSS
HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法: document.getElementById(id ...
- 支持续传功能的ASP.NET WEB API文件下载服务
先把原文地址放上来,随后翻译
- 算法复杂度中的O(logN)底数是多少
前言 无论是计算机算法概论.还是数据结构书中,关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少.算法中log级别的时间复杂度都是由于使用了分治思想,这 ...