luogu P1896 [SCOI2005]互不侵犯

去tm插头dp

数据范围这么,又要求,显然上dp

\(f[i][j][k]\)表示放到第\(i\)行,总共放了\(j\)个那啥,第\(i\)行的格子状态为\(k\)的方案

先预处理出一行内状态的放置个数和格子状态,因为那啥占据周围一圈的格子,所以转移时前后两行格子状态没有交集的状态转移

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#include<ctime>
#include<queue>
#include<map>
#define LL long long
#define il inline
#define re registerusing namespace std;
const LL mod=1000000007;
il LL rd()
{re LL x=0,w=1;re char ch;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w;
}
LL nn,n,kk,f[10][85][1100],ans;
LL nu[1100],b[1100],tt; //nu是某个状态的棋子数量,b为相对应的格子状态
bool v[1100];
il void init(int i,int j,int k)
{if(v[k]) return;++tt;nu[tt]=j,b[tt]=k;v[k]=true;for(;i<=n;i++)init(i+2,j+1,k|(1<<(i-1))|(i<n?(1<<i):0));    //对于某个棋子所在行以及上(没什么用),下的行,棋子所在列和左边(没什么用),右边都被占了
}int main()
{freopen("xzz.in","r",stdin);freopen("xzz.out","w",stdout);n=rd(),kk=rd();nn=1<<n;init(1,0,0);for(int i=1;i<=tt;i++) f[1][nu[i]][b[i]]=1;for(int i=2;i<=n;i++){for(int j=1;j<=tt;j++)for(int k=1;k<=tt;k++){if((b[j]|b[k])!=b[j]+b[k]) continue;for(int l=nu[j];l<=kk;l++)f[i][l][b[j]]+=f[i-1][l-nu[j]][b[k]];}}for(int j=1;j<=tt;j++) ans+=f[n][kk][b[j]];printf("%lld\n",ans);return 0;
}
语文好差啊嘤嘤嘤

转载于:https://www.cnblogs.com/smyjr/p/9408631.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java String:重要到别人只能当老二的字符串类

字符串&#xff0c;是Java中最重要的类。这句肯定的推断不是Java之父詹姆斯高斯林说的&#xff0c;而是沉默王二说的&#xff0c;因此你不必怀疑它的准确性。 关于字符串&#xff0c;有很多的面试题&#xff0c;但我总觉得理论知识绕来绕去没多大意思。你比如说&#xff1a;Str…

vue 中slot 的具体用法

子组件 <template><div class"slotcontent"><ul><!--<slot></slot>--><li v-for"item in items">{{item.text}}</li></ul></div> </template><script>export default{data(){re…

Java基础教程:多线程基础(3)——阻塞队列

Java基础教程&#xff1a;多线程基础&#xff08;3&#xff09;——阻塞队列 快速开始 引入问题 生产者消费者问题是线程模型中的经典问题&#xff1a;生产者和消费者在同一时间段内共用同一存储空间&#xff0c;生产者向空间里生产数据&#xff0c;而消费者取走数据。 模拟情景…

001.Linux开机启动过程

相关Linux启动过程解析&#xff0c;此作为通用启动参考&#xff1a; 转载于:https://www.cnblogs.com/itzgr/p/10285833.html

学习vim 从常用按键开始

撤销 u 前进 ctrl r移动 下一个单词 w 当前单词首或上个单词首 b 当前单词尾或上个单词尾 e ---- 大写就是忽略标点符号 行首行尾 $^ 查询 /word 下一个 n 上一个 Nv 可视化操作命令 删除操作 x 删除光标处的字符&#xff0c;向后删除 nx …

element ui 中 el-menu 如何添加链接router-link标签

在vue项目中&#xff0c;使用elementui 框架&#xff0c;做一个后台管理系统 在写左边菜单&#xff0c;菜用了&#xff0c;elementui 提供的组件 &#xff0c; el-menu 组件。但是组件没有链接&#xff0c;而我们知道添加链接使用router-link标签代码如下&#xff1a; <el-…

使用fastjson的parseObject方法将json字符串转换成Map 或者List

fastjson 转换成map HashMap<String,String> map JSON.parseObject(jsonStr,new TypeReference<HashMap<String,String>>() {}); fastjson 转换成list List<Person> list new ArrayList<Person>(); list JSON.parseArray(jasonArray.toStri…

【01】《正则表达式必知必会》(已看)(仅存放)

【01】《正则表达式必知必会》 共149页。扫描版&#xff0c;中文版。Sams Teach Yourselef Regular Expressions in 10 minutesBen Forta著。杨涛 翻译【】魔芋&#xff1a;这本书已经没有用了。内容已吸收。内容较为基础&#xff0c;也很全面。** 附件列表 链接&#xff1a;ht…

vue-cli脚手架的.babelrc文件

{// 此项指明&#xff0c;转码的规则"presets": [// env项是借助插件babel-preset-env&#xff0c;下面这个配置说的是babel对es6,es7,es8进行转码&#xff0c;并且设置amd,commonjs这样的模块化文件&#xff0c;不进行转码["env", {"modules": …

Java秒杀业务架构设计之路

Java秒杀业务架构设计之路

疑难杂症,逐个下药

用户登陆&#xff08;三次输错机会&#xff09;且每次输错误时显示剩余错误次数&#xff08;提示&#xff1a;使用字符串格式化&#xff09; 三次登录: 1.让用户输入三次的机会,错一次的时候就要询问用户是否要继续 2.分别判断用户名和密码,如果用户名错误就提示用户错误,如果是…

JS性能分析(测试代码运行时间)

console.time("timer"); for(var i0;i<10000;i){} console.timeEnd("timer"); timer: 0.274169921875ms转载于:https://www.cnblogs.com/smzd/p/10647455.html

jsonp原生js跨域拿新浪数据插件封装【可扩展】

//修改了一个bug,增加了手动释放垃圾 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-…

Ansible基本命令

Ansible安装完成之后就自带很多命令&#xff0c;其中较常用的有7个&#xff1a; ansibleansible-docansible-galaxyansible-initansible-playbookansible-pullansible-vaultansible ansible -h Usage: ansible <host-pattern> [options] 对本机执行一个命令&#xff1a; …

Java高并发高性能分布式框架从无到有微服务架构设计

Java高并发高性能分布式框架从无到有微服务架构设计

Makefile中几种赋值

延时变量&#xff0c;只有被使用时才展开定义 : 立即变量&#xff0c;定义时的赋值立即有效 ? 条件变量&#xff0c;当变量为空时才赋值 追加赋值转载于:https://www.cnblogs.com/smzd/p/10695962.html

线程的基本协作和生产者消费者

协作基础&#xff08;wait/notify&#xff09; Java的根父类是Object&#xff0c;Java在Object类而非Thread类中&#xff0c;定义了一些线程协作的基本方法&#xff0c;使得每个对象都可以调用这些方法&#xff0c;这些方法有两类&#xff0c;一类是wait&#xff0c;另一类是no…

L1-016 查验身份证

L1-016 查验身份证 &#xff08;15 分&#xff09;一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff…

什么是高并发,如何避免高并发

之前我将高并发的解决方法误认为是线程或者是队列可以解决&#xff0c;因为高并发的时候是有很多用户在访问&#xff0c;导致出现系统数据不正确、丢失数据现象&#xff0c;所以想到 的是用队列解决&#xff0c;其实队列解决的方式也可以处理&#xff0c;比如我们在竞拍商品、转…

.sync 修饰符的理解

正常 子组件&#xff1a; this.$emit(update:title, newTitle)父组件&#xff1a; <text-documentv-bind:title"doc.title"v-on:update:title"doc.title $event" ></text-document>简洁&#xff1a; <text-document v-bind:title.sync&quo…