原题地址:http://www.rqnoj.cn/problem/105

解题思路:

  状态表示:

    数组dp[i][j]中的j拆成M位二进制(后缀B表示)。

    如:M=3时

    dp[5][000B]表示第3,4,5都不放核物质的情况的总数。显然,dp[5][000B]=dp[5][001B]=dp[4][000B]+dp[4][100B]。特殊的是dp[i][111B]=0。

  初始状态:

    dp[0][000B]=dp[0][001B]=1,dp[0][i]=0(001B<i<=111B)

  状态转移方程:

    dp[i][j]=dp[i-1][  (j>>1) + (1<<(N-1))  ]+dp[i-1][j>>1]。  0<=j<((1<<n)-1)

解题代码:

 #include<stdio.h>
#include<iostream>
using namespace std;
long long dp[][]={,};
int main()
{
long long n,m,i,j;
scanf("%lld%lld",&n,&m);
for(i=;i<n;i++)
{
for(j=;j<((<<m)-);j++)
{
dp[i][j]=dp[i-][(j>>1LL)+(<<(m-1LL))]+dp[i-][j>>1LL];
}
}
i--;
long long s=;
for(j=;j<((<<m)-);j++)
{
s+=dp[i][j];
}
printf("%lld\n",s);
return ;
}

最新文章

  1. ASP.NET Core的路由[4]:来认识一下实现路由的RouterMiddleware中间件
  2. AngularJs之七
  3. PSI and index do not match: PSI and index do not match
  4. Socket Receive 避免 Blocking
  5. EL表达式的使用
  6. scichart by Kline
  7. linux 之常见的好用命令
  8. 从原理上搞定编码-- Base64编码
  9. android的Log日志打印管理工具类(一)
  10. 如何对Javascript代码进行二次压缩(混淆)
  11. SSL协议之数据加密过程详解
  12. Servlet不再是烦恼
  13. Android打造完美的刮刮乐效果控件
  14. 20 【python】入门指南:常用数据结构
  15. InvalidateRect,invalidate,updatewindow(转)
  16. 逻辑回归应用之Kaggle泰坦尼克之灾
  17. 安装VMware-tools时,一直停在“The path &quot;&quot; is not valid path to the gcc binary.”
  18. 在一台服务器上搭建多个项目的SVN
  19. myeclipse删除项目后重新导入
  20. 鸡肋提权之变态root利用

热门文章

  1. 传说中的WCF(6):数据协定(b)
  2. SSH开发实践part1:Spring与Hibernate整合
  3. angularJS之$watch、$digest和$apply方法
  4. yarn介绍
  5. JavaPersistenceWithHibernate第二版笔记Getting started with ORM-001用JPA和Hibernate实现HellowWorld(JTA、Bitronix)
  6. Qt之图形(Source和Dest相互覆盖的取舍,真的很方便)
  7. 使用原生JavaScript
  8. 屏幕实战效果解析:IPS/TFT/AMOLED/SLCD
  9. jQuery-瀑布流-绝对定位布局(二)(延迟AJAX加载图片)
  10. Java —— 时区(夏令时)问题