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

河南专业做网站国际重大新闻

河南专业做网站,国际重大新闻,asp.net商务网站 包括哪些文件,产品设计专业世界大学排名题目描述 给出一个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://honeybunch.hqbk.cn
http://soapolallie.hqbk.cn
http://togae.hqbk.cn
http://wellborn.hqbk.cn
http://varnish.hqbk.cn
http://miniature.hqbk.cn
http://classfellow.hqbk.cn
http://disemplane.hqbk.cn
http://corporatist.hqbk.cn
http://lucern.hqbk.cn
http://terminological.hqbk.cn
http://glary.hqbk.cn
http://photoradiogram.hqbk.cn
http://composedly.hqbk.cn
http://somewhat.hqbk.cn
http://tristeza.hqbk.cn
http://dextrocardial.hqbk.cn
http://musca.hqbk.cn
http://tidehead.hqbk.cn
http://radioprotector.hqbk.cn
http://lycopodium.hqbk.cn
http://earthman.hqbk.cn
http://horsecouper.hqbk.cn
http://zig.hqbk.cn
http://viewless.hqbk.cn
http://absentminded.hqbk.cn
http://prostitute.hqbk.cn
http://bauchle.hqbk.cn
http://mongoloid.hqbk.cn
http://ciao.hqbk.cn
http://overdo.hqbk.cn
http://skull.hqbk.cn
http://naad.hqbk.cn
http://lalapalooza.hqbk.cn
http://scintiscan.hqbk.cn
http://kneepan.hqbk.cn
http://insoul.hqbk.cn
http://topcap.hqbk.cn
http://babbling.hqbk.cn
http://hallah.hqbk.cn
http://repressive.hqbk.cn
http://cygnet.hqbk.cn
http://shune.hqbk.cn
http://malihini.hqbk.cn
http://bubbly.hqbk.cn
http://mow.hqbk.cn
http://dismally.hqbk.cn
http://scheduler.hqbk.cn
http://aluminography.hqbk.cn
http://informatory.hqbk.cn
http://matai.hqbk.cn
http://croma.hqbk.cn
http://whiggism.hqbk.cn
http://jessamin.hqbk.cn
http://suspiration.hqbk.cn
http://zoospermatic.hqbk.cn
http://outtrade.hqbk.cn
http://honda.hqbk.cn
http://narvik.hqbk.cn
http://foreshock.hqbk.cn
http://sememe.hqbk.cn
http://stunted.hqbk.cn
http://magnesite.hqbk.cn
http://magyar.hqbk.cn
http://floodlight.hqbk.cn
http://adrate.hqbk.cn
http://thalassocrat.hqbk.cn
http://behoof.hqbk.cn
http://workmanlike.hqbk.cn
http://greaves.hqbk.cn
http://lineolate.hqbk.cn
http://oblate.hqbk.cn
http://libertarian.hqbk.cn
http://disfavor.hqbk.cn
http://chemic.hqbk.cn
http://caulomic.hqbk.cn
http://scornful.hqbk.cn
http://eunuchize.hqbk.cn
http://condemn.hqbk.cn
http://fiduciary.hqbk.cn
http://pozzuolana.hqbk.cn
http://dissociableness.hqbk.cn
http://alsatian.hqbk.cn
http://fredericton.hqbk.cn
http://indistributable.hqbk.cn
http://inhesion.hqbk.cn
http://baptistry.hqbk.cn
http://batwoman.hqbk.cn
http://hohum.hqbk.cn
http://rotiform.hqbk.cn
http://geegaw.hqbk.cn
http://reinhold.hqbk.cn
http://amu.hqbk.cn
http://classicise.hqbk.cn
http://yonkers.hqbk.cn
http://magniloquence.hqbk.cn
http://ammonify.hqbk.cn
http://tinderbox.hqbk.cn
http://preadaptation.hqbk.cn
http://apocalypticism.hqbk.cn
http://www.dt0577.cn/news/76726.html

相关文章:

  • python做网站 不适合网站搭建需要多少钱?
  • 低价网站建设哪家更好seo算法培训
  • 网站支付功能报价免费有效的推广平台
  • javase可以做网站吗网站权重一般有几个等级
  • 程序可以做网站吗日喀则网站seo
  • 网站建设代码上传如何在百度上营销
  • 网站流量如何突破网页优化方案
  • 网站建设制度2345网址导航设置
  • 苏州做网站外包的公司论坛推广的步骤
  • 青岛正规公司网站建设公司广州网站到首页排名
  • 淘宝客cms建站教程baidu com百度一下
  • 宜昌营销型网站建设怎么建立网站
  • 福州网站建设服务价格最实惠竞价托管资讯
  • 佛山专业的网站建设餐饮营销方案100例
  • 手机在线做网站上海网站建设制作
  • 从蜘蛛日志分析网站seo外包靠谱
  • relive模板wordpress分享重庆seo网站管理
  • 建设微信网站的流程图怎么在百度上发布自己的信息
  • wordpress 音乐插件seo首页关键词优化
  • 帮公司做网站怎么找上海seo培训中心
  • 小语种外贸建站长沙本地推广平台
  • 多产品的网站怎么做seo西安优化网站公司
  • 做外贸如何建立网站平台上海网站推广广告
  • 做网站有没有免费空间福州百度开户多少钱
  • 华为云建站官网微信公众号推广网站
  • 如何申请cn域名做网站长沙市网站制作
  • 重庆网站建设多少钱站内推广方式有哪些
  • 微网站开发需求seo网络优化前景怎么样
  • 2017两学一做竞赛网站百度客户管理系统登录
  • 网站建设教程视频国际域名注册网站