车_ssl1382_dfs+位运算

Description


在n*n(n≤20)的方格棋盘上放置n个车(可以攻击所在行、列),有些格子不能放,求使它们不能互相攻击的方案总数。

Input


第一行为棋盘的大小n
第二行为障碍的数量m
第三行到第m+3为m个障碍

Output


总数

Analysis


n20所以位运算+搜索,记忆化可以搞一下
开错数组的惨痛教训不能忘,果断开大一倍

Code


#include <stdio.h>
using namespace std;
long long mr[2048576],b[41],lim,n,m;
__attribute__((optimize("O2")))
inline void dfs(int dep,long long now)
{
    if (mr[now])
        return;
    long long p=now|b[dep];
    while (p!=lim)
    {
        long long tmp=p;
        p|=(p+1);
        long long pos=p^tmp;
        dfs(dep+1,now|pos);
        mr[now]+=mr[now|pos];
    }
}
__attribute__((optimize("O2")))
int main()
{
    scanf("%lld%lld",&n,&m);
    lim=(1<<n)-1;
    for (int i=1;i<=m;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        b[x]|=(1<<(y-1));
    }
    mr[lim]=1;
    dfs(1,0);
    printf("%lld\n",mr[0]);
    return 0;
}
一、项目涉及内容 项目涉及内容: 1 RedHat7.6 Linux 操作系统安装 2 Hadoop3.2版本安装部署,三个节点的完全分布式集群。 3 HIVE数据仓库安装部署 4 Hbase数据库和zookeeper安装部署 5 日志收集系统Flume的安装部署 (选做) 6 分布式消息发布系统kafka系统安装部署 (选做) 二、项目要求 设计一个基于Hadoop平台的系统的实验项目,实现大数据的分布式存储、运算、分布式数据库处理、日志收集、消息发布功能。下载软件,解压安装,设置参数,运行并验证该实验,记录实验过程和结果。 实验运行环境要求: Linux7.6版本、Wmaware 15版本以上、hadoop3.2版本以上 要求创建大数据环境: 1专用的文件系统: /Bigdata/姓名缩写+学号 2专用的用户: hd+姓名缩写+学号 所有解压安装的软件都存放在专用的文件系统,并由专用的用户作为拥有者(owner). 项目文档包含四个部分: 1项目题目和功能说明 基于Hadoop平台的系统的实验项目,简明扼要说明该功能的运行机制,该说明不少于150字. 2实验过程和命令 描述系统的配置信息,记录安装部署过程和相关命令,并编写成安装步骤和结果。 3实验验证和结果 运行并验证该实验,记录实验过程和结果。要求截图必须有实验操作当天的日期和时间。 4实施问题处理 描述实施过程中,遇到什么问题,解决方法。 三、项目目的 本课程要求各小组能够充分利用所学的基本知识和技能, 管理linux系统上运行的hadoop各个组件,提高综合应用所学知识的能力。基本掌握hadoop平台的管理操作,具体目的如下: 熟练掌握Linux操作系统操作和管理。 熟练掌握Wmware workstation虚拟机的设置,包括系统资源CPU、内存、硬盘空间等分配,网络接口设置。 熟练掌握Hadoop3.2版本安装部署。掌握hdfs分布式文件系统使用和mapreduce分布式运算。 熟练掌握 HIVE数据仓库安装部署。使用直连式mysql数据库保存元数据、验证书本基站掉话率top20案例程序。 熟练掌握 Hbase数据库和zookeeper安装部署。掌握hbase数据库的使用、数据的操作。 熟练掌握日志收集系统Flume的安装部署。掌握多种日志信息的收集方法和部署。 熟练掌握分布式消息发布系统kafka系统安装部署。 学会通过网站、书籍、安装和文档光盘等方式收集所需的技术资料、问题分析和解答。 培养独立学习、吸取他人的经验、探讨技术的习惯。 培养学生理论联系实际的工作作风、严肃认真的科学态度以及独立工作的能力,树立自信心。 培养团队协作能力
最新发布
06-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值