首页 > 「火」皇家烈焰
头像 Kur1su
发表于 2020-05-07 10:44:56
Solution 根据题目给的限制关系, 很容易就联想到线性的动态规划令 表示第 位是当前位有/无火的方案数 (这里我的 代表无火, 代表有火)但是这道题对 的限制范围不止来自 , 还来自 因此无法二维表示这种状态关系的转移考虑多加一维, 令 表示第 位当前有/无火, 后一位() 有无 展开全文
头像 shyyhs
发表于 2021-01-20 21:41:36
直接按题意模拟dp即可.. #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+5,M=2; const int mod=1e9+7; char s[N]; ll f[N] 展开全文
头像 ThinkofBlank
发表于 2020-05-06 11:28:33
明显动规求解。 因为每个点的情况之和其左右两边那个点有关,所以,我们只需知道一个点左右两个点的状态就可以算出这个点的情况了,那么我们考虑将一个点左右两个点的状态储存下来。但是,仔细分析下,我们i这个点是由i-1这个状态转移过来的,那么,我们转移过来的时候,其实并不需要知道i-1这个点前面那个点的状态 展开全文
头像 |Crisp|
发表于 2020-05-09 21:34:19
题目简述: 在一个一维数组中,存放着'0'、'1'、'2'、'*'、'?'这几个字符,数字代表他左右两边存在'*'的个数,'*'的左右两边可以是数字或者'*',而'?'代表这个地方的东西不确定是什么。题目问的是总共可能的情况有多少种,显而易见,不同的情况是由'?'所在的位置产生的。要我们输出所有的情 展开全文
头像 与人无语
发表于 2020-05-13 13:58:26
一看就知道是dp 但就不知道怎么写啊啊啊啊看到设方程为dp[N][2][2] 时瞬间就知道了有了这个方程在按着条件写就行了具体情况看注释 #include <bits/stdc++.h> #define ll long long ll const N=1e6+5; ll const m 展开全文
头像 wxyww
发表于 2020-05-07 16:54:58
solution 一开始考虑用表示前i个位置,第个位置有(1)没有(0)烈焰,的方案数。发现不好转移。 当一种状态无法转移时,就再加一维状态 用表示前i个位置,第i个位置的状态为j,第个位置状态为的方案数。 然后就可以转移了。 当第个位置的信息为时,就有 当第个位置的信息为时,就有 当第个位置的信息 展开全文
头像 一衍一
发表于 2020-05-06 12:32:36
题意:问可以构成多少种情况题解:都在代码里面主要在于分类讨论时间复杂度: #include<bits/stdc++.h> using namespace std;//雷=皇家火焰 long long dp[10000000][2];//表示从头开始到第i位,?为雷和不为雷的情况数(0, 展开全文
头像 ⊙__⊙
发表于 2020-07-10 21:54:09
这是一道动态规划的题。 题意:给出一个长度为n的字符串,n最大1000000。 每个字符代表一种特殊含义。 0:这个格子没有烈焰,且其左右两个格子均没有烈焰1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰2:这个格子没有烈焰,且其左右两个格子中均有烈焰*:这个格子有烈焰?:未告诉你本格情况 求所 展开全文
头像 HBlade
发表于 2020-05-09 10:51:28
很明显的DP了,只要把状态能决定好,转移方程还是很好定下来的。首先很容易能想到至少2维,dp[i][j]表示前i个合法的序列中,j为1时表示第i个有火,0就没火的合法序列总数。但是这样是不够的,很明显可以发现,题面上说了,当前位会跟前一位和后一位都会有限制问题,因此还需要多加一维,dp[i][j][ 展开全文
头像 19_hanhan
发表于 2020-05-09 20:17:55
题目 题目描述: 帕秋莉掌握了一种火属性魔法 由于钟爱扫雷游戏,帕秋莉把自己图书馆前的走廊看作一个一维的扫雷地图,她制造了很多烈焰,排在这条走廊内 现在帕秋莉告诉你一部分烈焰的分布情况,请你告诉她可能的情况有多少种 对于一个格子,里面会有以下几种字符: 0:这个格子没有烈焰,且其左右两个格子均 展开全文