这道题是典型的八皇后问题,刘汝佳书上有具体的解说。

代码的实现例如以下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h> int vis[100][100];//刚開始wrong的原因就是这里数组开小了,开了[8][8],以为可以。后来看到[cur-i+8]意识到可能数组开小了。改大之后AC。 int a[8][8];
int C[10];
int max_,tot; void search_(int cur)
{
int i,j;
if(cur==8)
{
int ans=0;
tot++;
for(int k=0;k<8;k++)
{
ans+=a[k][C[k]];
}
if(ans>max_)
max_=ans;
}
else for(i=0;i<8;i++)
{
if(!vis[0][i]&&!vis[1][cur+i]&&!vis[2][cur-i+8])
{
C[cur]=i;
vis[0][i]=vis[1][cur+i]=vis[2][cur-i+8]=1;
search_(cur+1);
vis[0][i]=vis[1][cur+i]=vis[2][cur-i+8]=0;
}
}
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
scanf("%d",&a[i][j]);
}
}
max_=-1;
tot=0;
memset(vis,0,sizeof(vis));
search_(0);
printf("tot = %d\n",tot);
printf("%5d\n",max_);
}
return 0;
}

作为一仅仅菜鸟,应该在发现错误的时候多去找一找自己在哪些方面考虑的还不够好,而不是去抱怨这个抱怨那个。

你再抱怨,你依旧是那个什么都不会的菜鸟,而你抱怨的人也依旧会是那个大神。

不管遇到什么样奇怪无语的情况,都要冷静下来。多思考,不抱怨。

uva 167 - The Sultan&#39;s Successors(典型的八皇后问题)的更多相关文章

  1. UVA The Sultan&#39;s Successors

    题目例如以下: The Sultan's Successors  The Sultan of Nubia has no children, so she has decided that thecou ...

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

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

  3. UVA 167 R-The Sultan's Successors

    https://vjudge.net/contest/68264#problem/R The Sultan of Nubia has no children, so she has decided t ...

  4. UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索

    UVa 167 题意:八行八列的棋盘每行每列都要有一个皇后,每个对角线上最多放一个皇后,让你放八个,使摆放位置上的数字加起来最大. 参考:https://blog.csdn.net/xiaoxiede ...

  5. 深度搜索(dfs)+典型例题(八皇后)

    深度优先搜索简称深搜,从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”. 如上面的图所示:加入我们要找一个从V0到 ...

  6. The Sultan's Successors UVA - 167

    the squares thus selected sum to a number at least as high as one already chosen by the Sultan. (For ...

  7. UVA 11888 - Abnormal 89&#39;s(Manachar)

    UVA 11888 - Abnormal 89's option=com_onlinejudge&Itemid=8&page=show_problem&category=524 ...

  8. UVA 1397 - The Teacher&#39;s Side of Math(高斯消元)

    UVA 1397 - The Teacher's Side of Math 题目链接 题意:给定一个x=a1/m+b1/n.求原方程组 思路:因为m*n最多20,全部最高项仅仅有20.然后能够把每一个 ...

  9. UVA - 11604 General Sultan 题解

    题目大意: 有若干模式串,将某些模式串拼接起来(一个可以使用多次)形成一个长模式串,判断能否有两种或更多种不同的拼法拼成相同的模式串. 思路: 神奇的构图,暴力的求解. 可以发现,若有不同的拼法,则一 ...

随机推荐

  1. 关于Java(JDBC连接数据库)

    Processing SQL Statements with JDBC 处理JDBC中的SQL语句 这节主要是 JDBC 与数据库交互的基本步骤 JDBC的基石是DriverManager,通过它,J ...

  2. 递归-快速排序quickSort

    现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序.首先在这个序列中随便找一个数作为基准数.为了方便,就让第一个数6作为基准数吧.接下来,需要将这个序列中所有比基准数 ...

  3. [原博客] POI系列(2)

    正规.严谨.精妙. -POI bzoj 1098 : [POI2007]办公楼biu 如果把互相有手机号的建边得到一个无向图,那么这个图的补图的连通分量个数就是答案了.因为互相没手机号的必然在同一个连 ...

  4. 【技术贴】解决QQ空间发表文章手机不显示换行

    采用HTML模式,在需要换行的地方加入如下代码. <div><span style="font-family:微软雅黑;font-size:16px"> & ...

  5. Python---十年语言之首

    这个图表的数据非常的有意思,没有大起大浮并不是件坏事,这表明不断的有群体(来自Java和PHP——一个大部落)希望学习这种语言.Python是唯一一个在这个图表上表现的与众不同的语言. 我们都知道,P ...

  6. 【Xamarin挖墙脚系列:Xamarin的核心】

    原文:[Xamarin挖墙脚系列:Xamarin的核心] Xamarin 包含两个商业产品 :Xamarin.IOS, Xamarin.Android.他们都是通过开源的基于.Net的Mono项目构建 ...

  7. [LeetCode] Burst Balloons (Medium)

    Burst Balloons (Medium) 这题没有做出来. 自己的思路停留在暴力的解法, 时间复杂度很高: 初始化maxCount = 0. 对于当前长度为k的数组nums, 从0到k - 1逐 ...

  8. php 返回json 解析 报Wide character in print

    php 返回json: zabbix:/var/www/html/DEVOPS/Home/Lib/Action# vim EquipmentAction.class.php <?php head ...

  9. C#功能扩张方式

    有时候,为了完成一些window的一些操作,需要引入一些dll进行操作 1)  引入系统api进行操作,形如[DllImport("urlmon.dll", CharSet = C ...

  10. Process.StandardInput属性

    获取用于写入应用程序输入的流. 命名空间:System.Diagnostics程序集:System(在 system.dll 中) 语法     C# C++ VB   public StreamWr ...