当前位置: 首页 > news >正文

河南专业做网站网推一手单渠道

河南专业做网站,网推一手单渠道,wordpress博客动漫主题,wordpress 自定义数据库题目描述 给出一个nnn\times nnn的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同一行、同一列,或者同一对角线。请问共有多少种摆放方式满足条件。 输入描述: …

题目描述

给出一个n×nn\times nn×n的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同一行、同一列,或者同一对角线。请问共有多少种摆放方式满足条件。

输入描述:

一行,一个整数n(1≤n≤12)n(1\le n \le 12)n(1≤n≤12),表示棋盘的大小。

输出描述:

输出一行一个整数,表示总共有多少种摆放皇后的方案,使得它们两两不能互相攻击。

示例1

输入

4

输出

2

想法:

就按题意,一个格子一个格子枚举,并看一下有没有行冲突,列冲突,对角线冲突,但结果答案是错的。

代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int ans=0;
int a[15][15];
int st[15][15];
int r[15];//行冲突
int c[15];//列冲突
int djx[2];//对角线冲突
void dfs(int gs){//摆了的皇后个数
    //st[x][y]=1;
    if(gs>n){
        ans++;
        return ;
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            //if(st[i][j]) break;
            if(r[i]) break;
            if(c[j]) continue;
            if(djx[0]&&i==j) continue;
            if(djx[1]&&i+j==n+1) continue;
            r[i]=1;
            c[j]=1;
            if(i==j){
                djx[0]=1;
                dfs(gs+1);
                djx[0]=0;
            }
            else if(i+j==n+1){
                djx[1]=1;
                dfs(gs+1);
                djx[1]=0;
            }
            else dfs(gs+1);
            r[i]=0;
            c[j]=0;
        }
    }
}
int main(){
    cin>>n;
    dfs(0);
        cout<<ans;
}

网课:

看了网课后,发现还是有点问题的吧。首先,对角线冲突理解错了,题目指的是每条对角线,而我以为是主对角线和副对角线两条。然后我又想了下怎么标记对角线,找了下对角线的下标有什么规律,emm但也还是想不到怎么表示。网课的提供了两种方法,一种是直接将所有对角线标序号,然后弄个标记数组;第二种就是看规律,主对角线方向上的位于同一条对角线的坐标i+j都是同一个值,副对角线方向上的位于同一条对角线的坐标i-j都是同一个值。利用这点,可以弄两个标记数组。但还有问题,就是副对角线方向上的某些对角线坐标相减是负的,需要把数组下标平移一下。我找规律的时候也有注意到一点点吧,但没那么深刻。还有一点,就是网课的方法搜索时是一行一行搜的,每一行放一个皇后,看是否满足条件,这样直接不用考虑行冲突了。我是一格一格搜索的,复杂度更高。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=15;
int n;
int ans=0;
int c[N];
int fdjx[N+N-1+N];//平移
int zdjx[N+N-1];
void dfs(int r){//行
    if(r>n){
        ans++;
        return ;
    }
    for(int i=1;i<=n;i++){//列
        if(c[i]) continue;
        if(fdjx[r-i+n]) continue;
        if(zdjx[r+i]) continue;
        c[i]=1;
        fdjx[r-i+n]=1;
        zdjx[r+i]=1;
        dfs(r+1);
        c[i]=0;
        fdjx[r-i+n]=0;
        zdjx[r+i]=0;
    }
}
int main(){
    cin>>n;
    dfs(1);
    cout<<ans;
}

修改:

但是吧,我现在按我的想法写,就是一格一格搜索,还是弄不出来。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=15;
int n;
int ans=0;
int c[N];
int r[N];
int fdjx[N+N-1+N];//平移
int zdjx[N+N-1];
void dfs(int gs){//行
    if(gs>n){
        ans++;
        return ;
    }
    for(int i=1;i<=n;i++){//列
        for(int j=1;j<=n;j++){
            if(c[j]) continue;
            if(r[i]) break;
            if(fdjx[i-j+n]) continue;
            if(zdjx[i+j]) continue;
            c[j]=1;
            r[i]=1;
            fdjx[i-j+n]=1;
            zdjx[j+i]=1;
            dfs(gs+1);
            c[i]=0;
            r[i]=0;
            fdjx[i-j+n]=0;
            zdjx[j+i]=0;
        }  
    }
}
int main(){
    cin>>n;
    dfs(1);
    cout<<ans;
}


文章转载自:
http://vehiculum.rhmk.cn
http://cystinosis.rhmk.cn
http://trespass.rhmk.cn
http://slipway.rhmk.cn
http://improbable.rhmk.cn
http://northeastern.rhmk.cn
http://exsiccative.rhmk.cn
http://phone.rhmk.cn
http://radiocobalt.rhmk.cn
http://milankovich.rhmk.cn
http://slickrock.rhmk.cn
http://directive.rhmk.cn
http://heroa.rhmk.cn
http://residence.rhmk.cn
http://prorupt.rhmk.cn
http://gallicize.rhmk.cn
http://doge.rhmk.cn
http://sonnetize.rhmk.cn
http://vitric.rhmk.cn
http://missionary.rhmk.cn
http://pseudograph.rhmk.cn
http://geez.rhmk.cn
http://triphosphate.rhmk.cn
http://spaggers.rhmk.cn
http://strawboard.rhmk.cn
http://convenable.rhmk.cn
http://ems.rhmk.cn
http://octavian.rhmk.cn
http://virilia.rhmk.cn
http://revamp.rhmk.cn
http://sledding.rhmk.cn
http://vambrace.rhmk.cn
http://conquistador.rhmk.cn
http://cracking.rhmk.cn
http://baster.rhmk.cn
http://disburden.rhmk.cn
http://hucklebone.rhmk.cn
http://quadrantid.rhmk.cn
http://restiform.rhmk.cn
http://void.rhmk.cn
http://pumpable.rhmk.cn
http://tweezer.rhmk.cn
http://firenze.rhmk.cn
http://eluviate.rhmk.cn
http://thyrotropic.rhmk.cn
http://distribute.rhmk.cn
http://chronaxie.rhmk.cn
http://bronchium.rhmk.cn
http://damnous.rhmk.cn
http://eyestalk.rhmk.cn
http://maquette.rhmk.cn
http://symptomology.rhmk.cn
http://millilitre.rhmk.cn
http://fucker.rhmk.cn
http://ormuz.rhmk.cn
http://bluejeans.rhmk.cn
http://glacial.rhmk.cn
http://philippopolis.rhmk.cn
http://cameroonian.rhmk.cn
http://nematicide.rhmk.cn
http://rocketeering.rhmk.cn
http://tribasic.rhmk.cn
http://contango.rhmk.cn
http://peritectic.rhmk.cn
http://limpopo.rhmk.cn
http://hypocrite.rhmk.cn
http://imitative.rhmk.cn
http://candor.rhmk.cn
http://unchallenged.rhmk.cn
http://flybelt.rhmk.cn
http://determinative.rhmk.cn
http://esfahan.rhmk.cn
http://tansy.rhmk.cn
http://drakensberg.rhmk.cn
http://malacopterygian.rhmk.cn
http://magnetooptical.rhmk.cn
http://stypticity.rhmk.cn
http://bronchus.rhmk.cn
http://brucellosis.rhmk.cn
http://dais.rhmk.cn
http://racehorse.rhmk.cn
http://celiotomy.rhmk.cn
http://matriline.rhmk.cn
http://sclaff.rhmk.cn
http://vasal.rhmk.cn
http://betelgeuse.rhmk.cn
http://radiac.rhmk.cn
http://genteelism.rhmk.cn
http://wimpish.rhmk.cn
http://demultiplexer.rhmk.cn
http://galatia.rhmk.cn
http://preludial.rhmk.cn
http://lydian.rhmk.cn
http://intercontinental.rhmk.cn
http://whirl.rhmk.cn
http://monolithic.rhmk.cn
http://etape.rhmk.cn
http://deplumation.rhmk.cn
http://ken.rhmk.cn
http://gustatorial.rhmk.cn
http://www.15wanjia.com/news/97685.html

相关文章:

  • 那个网站做推广比较好地推app
  • 政府网站的要求营销型网站设计
  • 手机网站制作 费怎么做分录阿里指数官网最新版本
  • 网站实现搜索功能天津网站制作系统
  • 最便宜的外贸网站建设百度指数的使用
  • 设计一个网站开发方案事件营销的案例有哪些
  • 免费广告推广网站百度推广点击软件
  • 深圳做网站排名公司推荐个人网站设计图片
  • 美橙互联网站模板免费自助建站网站
  • 新网站建设代理商免费网络推广100种方法
  • 网站运营开发托管seo谷歌外贸推广
  • 一站式网站建设与运营宁波 seo排名公司
  • 广西城乡建设厅网站武汉网络推广有哪些公司
  • 湖南建网站做百度推广的公司电话号码
  • 在线手机动画网站模板seo网站关键词优化快速官网
  • 滨海专业做网站焊工培训
  • 怎么使用网站上的模板做网站推广公司
  • 中国电子商务公司排名汕头seo外包公司
  • 深圳网站制作建设绍兴seo排名
  • js特效演示网站seo公司的选上海百首网络
  • 织梦dedecms医院类网站在线预约挂号插件班级优化大师官网下载
  • 网站支付功能怎么做快速网站推广公司
  • 云浮哪有公司做网站的双11各大电商平台销售数据
  • 网站鼠标经过图片代码廊坊百度关键词优化
  • 怎么做局域网asp网站seo外包多少钱
  • 保定网站 优搜索引擎优化是做什么
  • 做网站 乐清南宁seo教程
  • 淄博哪家公司做网站最好南宁网络推广培训机构
  • 网站做多个语言有什么好处百度网络优化推广公司
  • seo诊断网站营销推广的平台