题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4806

这种题应该想状压的。

于是发现压不下,结合每一行每一列最多放两个炮想到记一下放炮的列就行。

**又考虑到当前行能怎么放只与之前放0/1/2个炮的列数有关,与具体在哪一列无关。

  于是记录一下前 i-1 行有多少列放了1/2个炮,就能顺利转移了。

别忘了考虑全所有情况。

(转移条件只考虑数组不越界就行。像最后那个转移,j=0体现在*j上)

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #define ll long long
  5. using namespace std;
  6. const int N=;const ll mod=;
  7. ll n,m,dp[N][N][N],ans;
  8. ll c(ll a){return (a*(a-)/)%mod;}
  9. int main()
  10. {
  11. scanf("%lld%lld",&n,&m);
  12. dp[][][]=;
  13. for(int i=;i<=n;i++)
  14. for(int j=;j<=m;j++)
  15. for(int k=;k<=m-j;k++)
  16. {
  17. dp[i][j][k]+=(dp[i-][j][k])%=mod; //
  18. if(j)(dp[i][j][k]+=dp[i-][j-][k]*(m-j+-k))%=mod; //
  19. if(k&&j+<=m)(dp[i][j][k]+=dp[i-][j+][k-]*(j+))%=mod; //
  20. if(j>=)(dp[i][j][k]+=dp[i-][j-][k]*c(m-j+-k))%=mod; //
  21. if(k>=)(dp[i][j][k]+=dp[i-][j+][k-]*c(j+))%=mod; //
  22. if(k)(dp[i][j][k]+=dp[i-][j][k-]*j*(m-j-k+))%=mod; ////////
  23. }
  24. for(int j=;j<=m;j++) for(int k=;k<=m-j;k++) (ans+=dp[n][j][k])%=mod;
  25. printf("%lld",ans);
  26. return ;
  27. }

bzoj4806 炮的更多相关文章

  1. bzoj4806 炮——DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4806 看到这题首先会想到状压什么乱七八糟的,然而很难做: 其实,因为求的是方案数,所以并不需 ...

  2. 【bzoj4806~bzoj4808】炮车马后——象棋四连击

    bzoj4806——炮 题目传送门:bzoj4806 这种题一看就是dp...我们可以设$ f[i][j][k] $表示处理到第$ i $行,有$ j $列没放炮,$ k $列只放了一个炮.接着分情况 ...

  3. 【bzoj4806~bzoj4809】 象棋四连发 DP-高精度-匈牙利算法-dfs

    都是经典题了吧..我好无聊.. 4806 4806-1801是双倍经验..DP方程看代码吧.. /* http://www.cnblogs.com/karl07/ */ #include <cs ...

  4. 炮(棋盘DP)

    一直以为自己写的就是状态压缩,结果写完才知道是个棋盘dp 首先看一下题目 嗯,象棋 ,还是只有炮的象棋 对于方案数有几种,我第一个考虑是dfs,但是超时稳稳的,所以果断放弃 然后记得以前有过和这个题差 ...

  5. 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理

    4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 95  Solved: 33[Submit][Statu ...

  6. [歪谈]拽一个贵人出来给你"当炮架子"

    我们在古装神话剧中经常会听到某个“先知”对前来算命的人说:你会在某某时刻遇到你的贵人.而这个贵人会在事业上助你一臂之力. 这里有个问题:贵人到底是什么?我们怎样去寻找我们的贵人. 前几天有个网友来咨询 ...

  7. [ACM_图论] Fire Net (ZOJ 1002 带障碍棋盘布炮,互不攻击最大数量)

    Suppose that we have a square city with straight streets.  A map of a city is a square board with n ...

  8. 3016 质子撞击炮 II

    3016 质子撞击炮 II  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description [抱歉数据错误~~已修 ...

  9. 人家为撩妹就鼓捣个网页,我做了个约炮APP(已开源)

    每年初夏第一场雷雨刚过,漫步河边的草坪,总是能闻到伴随着泥土的清新,这不是coco的前香,让人神魂颠倒:也不是gucci的后香,让人痴迷如梦.如24节气一样,它提醒人们,夏天到了.昨晚成都下了第一场雷 ...

随机推荐

  1. MVC,MVVM,MVP等设计模式的分析

    从Script到Code Blocks.Code Behind到MVC.MVP.MVVM 三个模式按照大致的历史进程将这些概念进行划分: Script Code Blocks.Code Behind ...

  2. HDU 4669 Mutiples on a circle 不知道该归为哪一类。

    题意:给你N个珠宝和一个K,每个珠宝上面都有数字,这个珠宝做成项链,把珠宝上的数字拼起来如果可以整除掉K,那么久说这个数字为wonderful value,问你有多少种方案可以组成WONDERFUL ...

  3. 【Windows】netsh动态配置端口转发

    文章转载自傲风 使用多个虚拟机,将开发环境和工作沟通环境分开(即时通,办公系统都只能在windows下使用-),将开发环境的服务提供给外部访问时,需要在主机上通过代理配置数据转发. VirtualBo ...

  4. (转)一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

    原文链接 http://blog.csdn.net/h5_queenstyle12/article/details/50424862 百度源代码如下 <!Doctype html> < ...

  5. jquery基础 笔记二

    动态创建元素 关于使用HTML DOM创建元素本文不做详细介绍, 下面举一个简单的例子: //使用Dom标准创建元素 var select = document.createElement(" ...

  6. C# 设计模式巩固 - 单例模式

    前言 设计模式的文章很多,所以此文章只是为了巩固一下自己的基础,说的不详细请见谅. 介绍 - 单例模式 官方定义:确保一个类只有一个实例,并提供一个全局访问点. 通俗定义:就是一个类只有一个单个实例. ...

  7. Request header field Content-Type is not allowed by Access-Control-Allow-Headers

    今天遇到一个跨域问题记录学习下: 一.问题: 跨域请求中包含自定义header字段时,浏览器console报错. Request header field xfilesize is not allow ...

  8. Spring实例化bean的几种方式

    一,通过constructor实例化bean Spring可以实例化各种类型的类,不要求必须是JavaBean类型的类.在XML中配置类如下: <bean id="exampleBea ...

  9. intellij 出现“Usage of API documented as @since 1.6+”的解决办法(转)

    原文链接:http://www.cnblogs.com/cxj20160928/p/5954196.html intellij 出现“Usage of API documented as @since ...

  10. EasyRTMP+EasyRTSPClient实现的多路(支持断线重连)RTSP转RTMP直播推流工具

    本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/73441405 介绍 EasyRTMP是Eas ...