首页 > 德玛西亚万岁
头像 sunrise__sunrise
发表于 2020-06-02 12:28:31
二进制枚举、状压dp 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。 这里非常 展开全文
头像 Kur1su
发表于 2020-06-06 10:39:58
Description 德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土地标记为0表 展开全文
头像 JQK2020
发表于 2020-06-02 16:55:36
题目描述 德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。 这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。 结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土 地标记为0表示为高 展开全文
头像 shyyhs
发表于 2021-01-12 01:27:20
前言: 好简单啊...我最近写这种题跟写x x题一样...或许就是x x题吧... 思路: 令f[i][j]表示第i行状态时j的方案数,然后把合法的转移一下,不合法的不转移就好了.至从我码力变好了之后写这种题真的...) 代码: #include <bits/stdc++.h> usin 展开全文
头像 昵称很长很长真是太好了
发表于 2020-06-03 16:29:36
状压dp第一次写状压dp的题目,可能是因为这种类型的比较难吧,所以是第一次做到。题解:我们可以用二进制来描述方格,1表示有德玛西亚,0表示没有。样例1中第一行的三个方格都可以站人一共有五种情况分别是 第一行的五种情况 第一种 000 第二种 001 第三种 010 第四种 1 展开全文
头像 好运莲莲_
发表于 2020-06-02 12:45:35
牛客——德玛西亚万岁(状压DP) 原题链接 题意: 已知一个n*m的01矩阵,0表示这个格子不可以站人,1表示这个格子可以站人。规定上下左右相邻的格子不能站人,问有多少种站人的方法。 思路: 因为n,m都很小,而且能够站人的人数也不是固定的。考虑状压枚举每一行的状态,进行转移。 在枚举状态的时候, 展开全文
头像 zzugzx
发表于 2020-06-02 14:52:35
题目链接 题意:题解: AC代码 /* Author:zzugzx Lang:C++ Blog:blog.csdn.net/qq_43756519 */ #include<bits/stdc++.h> using namespace std; #define 展开全文
头像 HGDB
发表于 2020-06-02 15:35:34
思路 因为题目的数据很小,所以直接二进制枚举就好了。 思路就是枚举每一行的二进制形式,1表示有人,0表示没人,dp[i][[j]表示第i行的放置状态是j 下面考虑下判断操作是否合法: 1、首先上一层 放了人的地方下一层必须不放,既上一层第 i位位1,下一层第i位必须为0,上一层第 i 位为0下一 展开全文
头像 wxyww
发表于 2020-06-02 20:04:30
solution 状压dp。 用数字来表示一行方案,对于一个状态x,如果x的第i位(二进制下)为1,表示这一行的第i个位置安排士兵。否则表示不安排士兵。 先把每一行可能的状态都搜出来,也就是在满足相邻两个二进制位不都为1的条件下,搜出所有的方案。可以发现一行的方案数最多不超过400。 然后将两个可以 展开全文
头像 Eihuvita.
发表于 2020-06-09 09:24:02
题意 德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。 这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。 结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地 展开全文