当前位置: 首页 > news >正文

做网站如何写需求买完域名以后怎么做网站

做网站如何写需求,买完域名以后怎么做网站,衡阳建设网站制作,什么是平面设计 都包括哪些内容本题是状压dp经典题目,很多人都是通过这一题开始对状压dp有所了解。 在进行讲解之前,我们先通过几个问答大致了解状压dp。 一、问答 1. 问题:什么是状压dp? 回答:状压dp即为状态压缩动态规划,何为状态压缩&#x…

本题是状压dp经典题目,很多人都是通过这一题开始对状压dp有所了解。

在进行讲解之前,我们先通过几个问答大致了解状压dp。

一、问答

1.  问题:什么是状压dp?

     回答:状压dp即为状态压缩动态规划,何为状态压缩?怎么进行状态压缩?是个问题。

这个问题涉及到了状压dp的核心思想——把问题的状态压缩成整数,因为整数便于存储和进行状态转移。

2.  问题:状压dp状态的存储形式是?

     回答:前面已经说了,问题的状态应该压缩成整数,但是单纯的10进制整数显然无法满足最小子问题的状态存储,或者说,浪费了很多存储空间。对于最小子问题,一般情况下,只有 1 和 0 两种状态,那么,我们用二进制存储显然更优。

3.  问题:用二进制存储状态只是存储上更优吗?

     回答:不然,二进制天然的位运算可以大大加速状态转移。这也是状压dp不会超时的重要原因。

哈哈,关键词get到了吗?二进制、位运算 ✿✿ヽ(°▽°)ノ✿

二、下面进行例题讲解

        错误思路我就不讲了,因为错误思路千奇百怪,我也是开始就想偏了(我上来就是dp[n][m]一顿转移)。

        首先,我们应该明白的是,我们只能放横着放或者竖着放长方形,一旦横着放的确定了(横着的放法要在合理情况下,总不能让竖的放不了吧O(∩_∩)O ),那么竖着的一定就只有一种可能了,所以,我们只需考虑横着放有多少种合理的放法即可。

下面该怎么做呢?已经焦头烂额了,开始吟唱

对于第 i 列,我们假设 0~ i -1 列的横着放的长方形已经全部放好了,我们都知道,横着放的一定有突出的部分。

就比如说,对于这张图,第 i 列突出的部分是 0、1、3这三个位置,用二进制表示即为101100,对应十进制的44,所以,这个状态就是 f [ i ][ 44 ]

不难发现,第 i 列状态是由第 i-1 列的状态转移过来的

具体来说,f [ i ][ j ] +=所有满足条件的 f[ i-1][ k ] 

要满足什么条件呢?

1. j 和 k不能重叠(显然长方形不能重叠放置,可以重叠的话放法就无穷尽了)

对于这个条件,保证 j&k==0 即可

2. j和k放完之后,第i-1列不能有连续奇数个0(因为这样就放不了竖着的了)

定义isok[ i ]表示 i 的二进制表示是否满足上述条件,isok[ i ] = true表示满足条件,

保证 isok[ j | k ]为 true 即可

三、C++ 代码

#include<bits/stdc++.h>
using namespace std;
const int N = 12, M = 1 << N;
int n, m;
bool isok[M];
long long f[N][M];
int main() {while (cin >> n >> m, n || m) {for (int i = 0;i < 1<<n;i++) {//计算isok[i]isok[i] = true;int cnt = 0;for (int j = 0;j < n;j++) {if (i >> j & 1) {if (cnt % 2)isok[i] = false;cnt = 0;}else cnt++;}if (cnt % 2)isok[i] = false;}memset(f, 0, sizeof f);f[0][0] = 1;for (int i = 1;i <=m;i++) {for (int j = 0;j < 1<<n;j++) {for (int k = 0;k < 1<<n;k++) {if (isok[j | k] && !(j & k)) {//满足两个条件才能转移f[i][j] += f[i - 1][k];}}}}cout << f[m][0] << endl;//代表到 m列且没有突出的情况(列数为0~m-1,m列表示遍历完成了)}return 0;
}

四、结尾

写完再回首,不禁又感叹状压dp的巧妙,如此优雅,妙哉妙哉。

这就是今天要分享的内容,感谢观看!

http://www.yayakq.cn/news/235311/

相关文章:

  • 网站权重与排名浅谈招聘模板制作app
  • 石家庄市规划建设局网站西宁市建设网站价格低
  • 做seo网站公司网站空间2000m多少钱
  • 企业商城网站多少钱云网站 制作
  • 张北网站seo护肤品推广软文
  • 中国个人优秀网站茂名本土网站建设公司
  • seo sem 做网站水果网店网站建设策划书
  • 网站建设 网页制作惠州网站关键词排名
  • 怎么做扫二维码登陆网站wordpress插件查看
  • 怎么介绍自己的网页设计潍坊seo网站推广
  • 网站外链接如何做密云城市建设官方网站
  • 北京网站推广价格wordpress彩色标签云设置方法
  • 58怎么做自己的网站如何用excel做网站
  • 给女朋友做的网站交互网站怎么做
  • 收费下载网站cms湖南seo优化报价
  • 个人建什么样的网站好免费设计自己的名字
  • 做网站需要公司授权嘛python3 网站开发入门
  • 访问网站的过程百度关键词点击价格查询
  • 网站根目录在哪wordpress青岛君哲网站建设公司怎么样
  • 成都网站建设网站网站建设与管理 管理课程
  • 北京网站建设营销网站名称格式
  • 云趣在线企业网站建设南昌房产网
  • 东营网站建设设计网站建设设计公司
  • 网站推广策划案例重庆公司注册服务
  • 证券投资网站做哪些内容设计优秀的网站推荐
  • 兰州专业做网站的公司哪家好烟台H5高端网站建设
  • 一个网站的建设需要什么手续网站uv pv
  • 未备案网站 怎么处理一般通过东方众
  • 靖宇东兴自助建站wordpress留言板源码
  • 网站规划内容方案奉贤广州网站建设