尝试解决N皇后问题(持续优化)

0层:神圣打表(∞)

1 #include <cstdio>
2 int main() {
3     int arr[11] = {0,1,0,0,2,10,4,40,92,352,724};
4     int n;
5     while(~scanf("%d", &n) && n){
6         printf("%d\n", arr[n]);
7     }
8 }

1层:一维暴力回溯(13)

 1 const int maxn = 20;
 2 int G[maxn];    //G[c] = r
 3 int n, cnt;
 4
 5 bool ok(int cc) {
 6     for(int rr = 0; rr < cc; rr++) {
 7         if(G[rr] == G[cc] || abs(rr-cc) == abs(G[rr]-G[cc])) {
 8             return false;
 9         }
10     }
11     return true;
12 }
13
14 void dfs(int cc) {
15     if(cc == n) {
16         cnt++;
17         return ;
18     }
19     for(int rr = 0; rr < n; rr++) {
20         G[cc] = rr;
21         if(ok(cc)) {
22             dfs(cc + 1);
23         }
24     }
25 }
时间: 2024-08-05 19:28:52

尝试解决N皇后问题(持续优化)的相关文章

对八皇后的补充以及自己解决2n皇后问题代码

有了上次的八皇后的基础.这次准备解决2n皇后的问题,: //问题描述// 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.//同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一条对角线上.问总共有多少种放法?n小于等于8.//输入格式// 输入的第一行为一个整数n,表示棋盘的大小.// 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇

京东个性化推荐系统持续优化的奥秘(转)

订单贡献率10%,京东个性化推荐系统持续优化的奥秘 作者:周建丁 在信息过剩的互联网时代,个性化推荐技术对于互联网公司运营的重要性自不待言.本文要谈的是京东商城最新的推荐系统.京东已经在新版首页上线了“今日推荐”和“猜你喜欢”两项功能,基于大数据和个性化推荐算法,实现了向不同用户展示不同的内容的效果(俗称“千人千面”),该系统目前在PC端和移动端都已经为京东贡献了10%的订单. 京东推荐系统三部曲 总体而言,京东推荐算法的步骤并不神秘,无非是建立召回模型——召回模型效率分析——排序模型三步.但这

11.12模拟考T1(可持续优化)PS:神奇的东西

1.数列操作   (array.pas/c/cpp) [问题描述] 现在有一个数列,最初包含0个数.现在要对数列操作n次,操作有3类. 1) a k,在数列的最后插入一个整数k 2) s 将最近插入的数删除. 3) t k 将数列恢复第k次操作前的状态 下面是一个例子,有12个操作 1 a 5 -> [5] => 5 加入数5 2 a 3 -> [5,3] => 3 加入数3 3 a 7 -> [5,3,7] => 7 加入数7 4 s -> [5,3] =>

尝试解决IIS问题一些方法

尝试解决IIS问题一些方法

尝试解决.NET Core Framework中Dns.GetHostAddressesAsync()引起的线程死锁

被这个坑坑得刻骨铭心!先爆一下 corefx 中 System.Net.Dns.GetHostAddressesAsync() 真面目. public static Task<IPHostEntry> GetHostEntryAsync(IPAddress address) { NameResolutionPal.EnsureSocketsAreInitialized(); return Task<IPHostEntry>.Factory.FromAsync( (arg, requ

C语言解决八皇后问题

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 /* this code is used to cope with the problem of the eight queens. 5 * array borad[9][9] is a virtual borad. 6 * line 0 and volumn 0 is ignored. 7 * at first we find a place to set a queen on it,

敏捷开发下的软件架构设计与持续优化

过往的软件开发, 往往都是由架构师将他对产品的理解,利用 UML 来体现软件的架构设计. 这种方式的问题是:因缺乏使用者与团队成员间的互动参与,使得对外并未能完整的将使用者需求,映射到软件架构中; 而对内所提供的软件架构设计文档, 对实际开发的工作, 指导意义并不大(因为,厚重的架构设计文档,便如老太婆的裹脚布般:又臭又长).更严重的问题是,由于架构设计耗费太长的时间,如此再加上开发.测试的时间,团队往往会太晚才会发现软件架构上的重大缺陷.而由于太晚才发现软件架构上的缺陷,所以,软件架构上若需做

写日志函数和持续优化

首先看下面的函数 <span style="font-size:18px;">void writelog(char* file, char* msg) { FILE*fp=NULL; int nDataLen = strlen(msg); fp=fopen(file,"ab+");//只供读取 if(fp!=NULL) { fwrite(msg, nDataLen, 1, fp); } fclose(fp);//关闭文件 }</span> 这

持续优化云原生体验,阿里云在Serverless容器与多云上的探索

摘要: 深度解读阿里云的Serverless Kubernetes, 介绍对Open Service Broker API标准的支持. 近日,阿里云宣布推出Serverless Kubernetes服务此举意在降低容器技术的使用门槛.简化容器平台运维.并同时发布阿里云服务对Open Service Broker API标准支持,通过一致.简单.可扩展的接口,将各种类型开发服务便捷统一化地交付到Cloud Foundry.Kubernetes等云原生应用平台:轻松实现多云环境下应用开发,让用户更多