2n皇后问题状压dp_「已注销」的博客-程序员秘密

蓝桥杯2n皇后问题

分析:

该题与给定状态下的n皇后问题相似,只不过在搜索时要用两层循环。

在第一层循环里放置其中一种颜色的皇后,在第二层的循环中放置另一种颜色的皇后。

 

#include <bits/stdc++.h>

using namespace std;
int upper,ans,n;
int a[10];
void dfs(int i,int col,int maindia,int condia,int co,int maindi,int condi)
{
    if(col==upper&&co==upper)
    {
        ans++;
        return ;
    }
    int canput=a[i]&(~(col|maindia|condia));
    while(canput)
    {
        int lowbit=canput&(-canput);
        int canpu=a[i]&(~(co|maindi|condi|lowbit));
        while(canpu)
        {
        int lowbi=canpu&(-canpu);
        dfs(i+1,col|lowbit,(maindia|lowbit)>>1,((condia|lowbit)<<1)&upper,co|lowbi,(maindi|lowbi)>>1,((condi|lowbi)<<1)&upper);
        canpu-=lowbi;
        }
        canput-=lowbit;
    }
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            int x;
            cin>>x;
            a[i]=(a[i]<<1)|x;
        }
    upper=(1<<n)-1;
    ans=0;
    dfs(0,0,0,0,0,0,0);
    cout<<ans;
    return 0;
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_43456754/article/details/104772811

智能推荐

AEM集成SPA(一)架构及概念梳理_SerikaOnoe的博客-程序员秘密

前言这篇文章主要是对AEM前沿技术文档的研究,主要整理了Adobe Experience Management官方文档对于集成SPA框架的各类文档,并加以略微梳理,本篇文章适合有一定AEM开发经验和SPA框架开发经验的人阅读。这篇文章内容主要是概念性的内容,在对英文文档翻译的过程中,部分深奥的概念我只能借助图来理解,因此翻译可能会有点小出入。读者只需要略微了解即可,下一篇文章将给出AEM集成React框架的完整教程。文章目录前言1 名词解释2 AEM混合架构2.1 架构对比2.2 Content Fr

什么是程序_Seloman的博客-程序员秘密_什么是程序

什么是程序?1.(从构成上看)计算机只能一个个地处理简单任务,这种简单任务叫做指令,指令的有序组织就是程序。2.(从性质与目的看)人们为了使用计算机解决某种问题,用计算机可以识别的代码编排的一系列数据处理过程便是程序。什么是程序设计?1.按照特定规则,编排计算机能识别的特定的指令组合的过程。什么是程序设计语言?1.方便人们程序设计而提供的一种手段。机器语言的缺点编写机器语言是一件痛苦的事情,人们直接用计算机能识别的0 1代码,来编写程序,并且不同的计算机指令系统是不一样的,这

Android烧录镜像文件介绍_TseJung的博客-程序员秘密_rpm.mbn

sbl1.mbn烧录命令:fastboot flash sbl1 sbl1.bin作用:second bootloader1的缩写,是在little kernel(lk)前启动,起到引导lk的作用,如果将该分区擦除,则设备表现为进入紧急下载模式,即,擦除该分区后,插入USB显示QDload端口。rpm.mbn烧录命令:fastboot flash rpm rpm.mbn作用:电源管理器,...

Matplotlib还能这么画!(附25个案例详细代码)_数据不吹牛的博客-程序员秘密

作者:zsx_yiyiyi编辑:python大本营大家好,今天分享给大家25个Matplotlib图的汇总,在数据分析和可视化中非常有用,文章较长,可以收藏下来慢慢练手。#!pipi...

微信小程序-ColorUI的demo错误_BeYourOwnHero的博客-程序员秘密

#form表单里,图片每次选择的限制为四个,当已经传了三张图片时,会继续可以选择四张图片,这样就会显示出7张图片,可以尝试如下修改:ChooseImage() { var maxImgNum = 4-this.data.product.pictures.length wx.chooseImage({ count: maxImgNum, //默认9 siz...

dpdk-20.11 编译和安装_choumin的博客-程序员秘密

快速记录一下 dpdk-20.11 的编译和安装过程。dpdk-20.11 以后使用了基于 meson 和 ninja 的构建方式,带来的好处就是编译和安装都很简单,不需要像之前的版本那样设置环境变量。前提是要安装 meson 和 ninja。具体编译和安装过程如下:$ git clone git://dpdk.org/dpdk-stable$ cd dpdk-stable$ git checkout 20.11$ meson build$ ...

随便推点

U盘在任务栏有显示,但是在我的电脑里面没显示_江州山农的博客-程序员秘密

导读第一次遇到这种情况:U盘在别人电脑上都好好的,但是是在自己电脑上无法找到盘符,而USB的识别信息是都有的。参考资料:百度知道#解决方案先插上U盘,然后右键我的电脑-属性-设备管理器然后找到U盘所在的那一栏,然后右键U盘的名字-卸载-确定之后拔出U盘,再插上,就会正常显示出来。是不是很简单。...

图像识别_邓文(desaco)的博客-程序员秘密_图像识别方法主要有三种

图像识别主要用到了两个第三方的iOS框架:OpenCV和TesseractOCR,OpenCV用来做图像处理,定位到身份证号码的区域,TesseractOCR则是对定位到的区域内的内容进行识别。 OpenCV中的一些简单的处理图像的方法:灰度处理、二值化、腐蚀、边缘检测等等。Tesseract Open Source OCR Engine (main repository)- http...

【UVa】208 - Firetruck_「已注销」的博客-程序员秘密

Problem [here](“https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=144&mosmsg=Submission+received+with+ID+17612154“)ProblemThe Center City fire de

iQOO U1x和红米note8 的区别 哪个更值得入手_m0_51392343的博客-程序员秘密

iQOO U1x这款手机采用6.51英寸IPS材质的全面屏,支持60Hz刷新频率,屏幕分辨率为1600x720像素vivo手机爆降600这活动太给力了 机会不容错过https://www.vivo.com.cn红米note8手机爆降500这活动太给力了 机会不容错过https://www.xiaomi.cn/note8Redmi Note 8这款手机采用6.3英寸LCD材质的全面屏,屏幕分辨率为2340x1080像素,支持60Hz刷新频率。Redmi Note 8这款手机所配置的后置摄像头的参

java中字符串截取,调用substring()方法_嘿、body的博客-程序员秘密

substring() 方法返回字符串的子字符串。在java中 substring()方法有两种用法,第一种public String substring(int beginIndex)第二种public String substring(int beginIndex, int endIndex)参数的意思beginIndex -- 起始索引

解决Android Studio 无法显示Layout视图问题_dlfryby306482969的博客-程序员秘密

在Android Studio 当中,如果你选择的SDK的版本 与你所显示的视图版本不一致时,会出现这个错误Exception raised during rendering:com/android/util/PropertiesMap (Details)如下图所示这个时候就得注意你的SDK版本和视图版本是否一致了转载于:https://www.cnblogs.com...

推荐文章

热门文章

相关标签