Pieces Assignment
Source : zhouguyue
Time limit : 1 sec Memory limit : 64 M
Submitted : 415, Accepted : 149
Background
有一个n*m的棋盘(n、m≤80,n*m≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻(每个棋子最多和周围4个棋子相邻)。求合法的方案总数。
Input
本题有多组测试数据,每组输入包含三个正整数n,m和k。
Output
对于每组输入,输出只有一个正整数,即合法的方案数。
Sample Input
2 2 3
4 4 1
Sample Output
0
16
简单dp题,动态规划就是这样,你要自己去理解,真的要别人告诉你这个原理是什么,是又麻烦,又没有效果的。每个人都是从不会到会,不会看别人博客,但是请一定要独立思考,学习动态规划更是要这样。自己的体会对自己来说总是最有用的
状态转移方程:dp[i][j][p]+=dp[i-1][v][p-t];

#include <iostream>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>using namespace std;
long long int dp[85][1<<10][25];//在第i行,棋子为k个,状态为s的状态数
int n,m,k;
int getsum(int x)
{int res=0;int i=0;while(x){if(res&&(x&1))return -1;if(res=(x&1))i++;x>>=1;}return i;
}
int main()
{while(scanf("%d%d%d",&n,&m,&k)!=EOF){//根据n,m的大小确定行和列if(n<m)swap(n,m);memset(dp,0,sizeof(dp));dp[0][0][0]=1;int end=(1<<m)-1;for(int i=1;i<=n;i++){for(int p=0;p<=k;p++){for(int j=0;j<=end;j++){int t=getsum(j);if(t==-1||t>p)continue;for(int v=0;v<=end;v++){if(getsum(v)==-1||(v&j))continue;dp[i][j][p]+=dp[i-1][v][p-t];}}}}long long int sum=0;for(int i=0;i<=end;i++)sum+=dp[n][i][k];printf("%lld\n",sum);}

转载于:https://www.cnblogs.com/dacc123/p/8228856.html

HOJ-2662Pieces Assignment(状态压缩,动态规划)相关推荐

  1. 【动态规划】状态压缩动态规划

    整理的算法模板合集: ACM模板 目录 一.集合类状态压缩动态规划 A. AcWing 91. 最短Hamilton路径 B.AcWing 524. 愤怒的小鸟 二.连通类(棋盘类)状态压缩动态规划 ...

  2. 【转】状态压缩动态规划

    引入  首先来说说"状态压缩动态规划"这个名称,顾名思义,状态压缩动态规划这个算法包括两个特点,第一是"状态压缩",第二是"动态规划". 状 ...

  3. 状态压缩动态规划 - 总结【普及+,提高-】

    状态压缩动态规划是一类特殊的动态规划,通常有一维用来表示一个二进制状态.状态压缩,顾名思义,就是把原来要一个bool数组表示状态压缩到一个int变量里.围绕状压DP,我们将介绍它的前世今生,领略状压D ...

  4. 【SGU 448】Controlled Tournament(状态压缩动态规划)

    题目链接 [SGU 448]Controlled Tournament 题目大意 给定比赛人员个数nnn,你希望赢的人的编号m" role="presentation" ...

  5. 状态压缩动态规划部分习题详解

    状态压缩动态规划部分习题详解 状压DP部分题目详解 状态压缩动态规划部分习题详解 简介 经典子集类问题 原子弹 最短路与状压DP结合 送礼物 P3959宝藏 旅游 经典网格类 铺地砖 一笔画 其他类型 ...

  6. 铺瓷砖问题 (状态压缩动态规划) (一)

    作者: Phill King 邮箱: phillking1982@163.com 原创文章,转载请注明出处. 题目地址:2411 -- Mondriaan's Dream 问题简单描述: 在一个N行M ...

  7. 状态压缩动态规划 -- 旅行商问题

    旅行商问题: N个点(N<16)的带权有向图D,求一条路径,使得这条路经过每一个点恰好一次. 而且路径上边的权值和最小(或者最大),或者求一条具有这样性质的回路. 状态压缩: 将二进制表示十进制 ...

  8. UOJ 265 NOIP 2016 DAY2 T3 浅谈预处理状态压缩动态规划

    世界真的很大 要是当年我会一点状压该多好.. 虽然现在我状压也很差,但是还是把这道题水出来了 马上要NOIP2017了,抓紧调整状态才好 看题先: description Kiana 最近沉迷于一款神 ...

  9. [NOI2015]寿司晚宴(状态压缩动态规划)

    题目描述 为了庆祝NOI的成功开幕,主办方为大家准备了一场寿司晚宴.小G和小W作为参加NOI的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了n−1种不同的寿司,编号1,2,3,⋯,n-1 ...

最新文章

  1. vivado VIO (virtual input output)虚拟IO的使用
  2. c#中在规定时间弹出窗体
  3. 有关gcc,make,gdb的知识
  4. 中科燕园GIS外包-----基于ArcGIS的应急平台
  5. requests 200 scrapy超时_selenium咋和scrapy一起用捏?
  6. vs设计窗口不见了_VS厂欧米茄海马300系列女王密使腕表评测
  7. HDU.1005 Number Sequence
  8. jmter测试jmeter参数化(必须掌握)
  9. .Net MVC新建视图时出现“AutoMapper已拥有为System.ValueTuple定义的依赖项”的错误提示
  10. 面试字节跳动计算机视觉算法实习岗位
  11. LumaQQ.NET For Visual Studio 2005 代码下载
  12. 有关office2016图标显示异常的解决办法(亲测一天,终于解决!!!!)
  13. dtu连接mysql_Azure SQL 数据库中的DTU和eDTU是什么
  14. 大数据hadoop讲解
  15. BlowFish算法Java实现
  16. Speedoffice(excel)如何自动换行
  17. 科技发展快速,VR、AR概念要怎么区分?
  18. asp毕业设计—— 基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码)——软件信息发布系统
  19. postgis基本用法
  20. css button阴影效果,css怎么给button设置阴影

热门文章

  1. python中rgb_python - 图像的RGB矩阵
  2. 分压式静态工作点稳定电路
  3. java 扫描类_Java扫描指定包中所有类
  4. ltspice 双脉冲_焊烟脉冲布袋式除尘器制作
  5. Mysql 零距离-入门(二)
  6. 无法检查指定的位置是否位于cfs上_打印机知识普及:七大原因导致的打印机无法打印及解决方法...
  7. 实体类blob类型_Mysql的数据类型和JPA的实体类
  8. 全国计算机四六级报名时间2015,2015年英语四六级口语考试报名时间:10月25日起...
  9. C语言-字符串处理函数strcmp
  10. php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件