UVa 167

题意:八行八列的棋盘每行每列都要有一个皇后,每个对角线上最多放一个皇后,让你放八个,使摆放位置上的数字加起来最大。

参考:https://blog.csdn.net/xiaoxiede_wo/article/details/79973171

 #include <iostream>
#include <cstring>
#include <iomanip>
using namespace std;
int pic[][];
int ans;
int v[][];
void dfs(int cur,int num){
if(cur==){//出现一组解,看能否更新
ans=max(ans,num);
return ;
}
for(int i=;i<;i++){
if(!v[][i]&&!v[][cur+i]&&!v[][cur-i+]){//v[0] 代表行 v[1]代表副对角线 v[2]代表主对角线
v[][i]=;v[][cur+i]=;v[][cur-i+]=;//选这个点,标记
dfs(cur+,num+pic[cur][i]);//往下搜索
v[][i]=;v[][cur+i]=;v[][cur-i+]=;//复原
}
}
}
int main(){
int n;
cin>>n;
while(n--){
ans=;
memset(v,,sizeof(v));
for(int i=;i<;i++)
for(int j=;j<;j++)
cin>>pic[i][j];
dfs(,);
cout<<setw()<<ans<<endl;//输出有个小坑
}
}

POJ2258

题意:给你点和边的数量,再给你边的连接关系,求最长路径。点可以重复访问,边不行。

参考:https://blog.csdn.net/miranda_ymz/article/details/79274577

 #include<iostream>
#include<cstdio>
#include<cstring>
#define N 26
using namespace std;
int n,m,ans;
int edg[N][N],vis[N][N]; void search(int cur,int len){
ans=max(ans,len);
for(int i=;i<n;i++){
if(edg[cur][i]==||vis[cur][i]==) continue;//如果两顶点不相连或已访问过,就跳过
vis[cur][i]=vis[i][cur]=;//选择这个边并继续搜索
search(i,len+);
vis[cur][i]=vis[i][cur]=;//复原 回溯
}
} int main(){
while(scanf("%d%d",&n,&m)!=EOF&&(n||m)){
int a,b;
memset(edg,,sizeof(edg));
for(int i=;i<m;i++){
cin>>a>>b;
edg[a][b]=edg[b][a]=;//连边
}
ans=;
for(int i=;i<n;i++){
memset(vis,,sizeof(vis));//清空访问
search(i,);
}
cout<<ans<<endl;
}
return ;
}

UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索的更多相关文章

  1. 八皇后問題 (C語言递归實現 回溯法)

    八皇后问题是一个以国际象棋为背景的问题:怎样可以在 8×8 的国际象棋棋盘上放置八个皇后,使得不论什么一个皇后都无法直接吃掉其它的皇后?为了达到此目的.任两个皇后都不能处于同一条横行.纵行或斜线上.現 ...

  2. 洛谷 P1219八皇后

    把全部,在这251秒,赌上! ——<游戏人生zero> 题目:https://www.luogu.org/problem/P1219 八皇后是一道非常非常非常经典的深搜+回溯的题目. 这道 ...

  3. LeetCode 31:递归、回溯、八皇后、全排列一篇文章全讲清楚

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天我们讲的是LeetCode的31题,这是一道非常经典的问题,经常会在面试当中遇到.在今天的文章当中除了关于题目的分析和解答之外,我们还会 ...

  4. uva 167 - The Sultan&#39;s Successors(典型的八皇后问题)

    这道题是典型的八皇后问题,刘汝佳书上有具体的解说. 代码的实现例如以下: #include <stdio.h> #include <string.h> #include < ...

  5. Uva 167 The Sultan's Successors(dfs)

    题目链接:Uva 167 思路分析:八皇后问题,采用回溯法解决问题. 代码如下: #include <iostream> #include <string.h> using n ...

  6. 八皇后算法的另一种实现(c#版本)

    八皇后: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于 ...

  7. 数据结构0103汉诺塔&八皇后

    主要是从汉诺塔及八皇后问题体会递归算法. 汉诺塔: #include <stdio.h> void move(int n, char x,char y, char z){ if(1==n) ...

  8. Python学习二(生成器和八皇后算法)

    看书看到迭代器和生成器了,一般的使用是没什么问题的,不过很多时候并不能用的很习惯 书中例举了经典的八皇后问题,作为一个程序员怎么能够放过做题的机会呢,于是乎先自己来一遍,于是有了下面这个ugly的代码 ...

  9. Python解决八皇后问题

    最近看Python看得都不用tab键了,哈哈.今天看了一个经典问题--八皇后问题,说实话,以前学C.C++的时候有这个问题,但是当时不爱学,没搞会,后来算法课上又碰到,只是学会了思想,应该是学回溯法的 ...

随机推荐

  1. [Xcode 实际操作]九、实用进阶-(2)遍历设备(输出系统)上的所有字体

    目录:[Swift]Xcode实际操作 在实际工作中,经常需要调整界面元素的字体种类. 本文将演示输出系统提供的所有字体,方便检索和使用. 在项目导航区,打开视图控制器的代码文件[ViewContro ...

  2. 初学Django框架知识

    首先了解什么事HTTP协议; 1.浏览器往服务器发的 请求(request): 请求消息的格式: 请求方法 路径 HTTP/1.1\r\n k1:v1\r\n k2:v2\r\n \r\n 请求数据 ...

  3. sed 删除指定行

    参考:http://blog.sina.com.cn/s/blog_4ba5b45e0102e7l2.html

  4. mybatis二级缓存

    二级缓存区域是根据mapper的namespace划分的,相同namespace的mapper查询数据放在同一个区域,如果使用mapper代理方法每个mapper的namespace都不同,此时可以理 ...

  5. 后台管理系统·快速开发框架JSite

    平台介绍 框架基于Maven构建,拆分成多个子模块,层次结构清晰.可用于所有Web应用,如企业后台管理系统.OA系统.CMS.CRM等. 框架本身集成了最新的 Flowable工作流引擎 https: ...

  6. Access restriction: The type 'JPEGCodec' is not API

    问题 今天导入项目时Eclipse报错如下: Access restriction: The type 'JPEGCodec' is not API (restriction on required ...

  7. Info.plist权限设置

    <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问 ...

  8. css-bootstrap

    CSS概览 基本的bootstrap包含三个文件,引入到html页面中 <link href="{% static 'css/bootstrap.min.css' %}" r ...

  9. 8. 字符串转换整数 (atoi)

    8. 字符串转换整数 (atoi) 方法一 import re import math class Solution(object): def myAtoi(self, str): "&qu ...

  10. BZOJ1257(数论知识)

    感觉做法很神奇……想不到啊qwq 题目: Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值 其中k ...