首页 > 其他分享 >2466. 统计构造好字符串的方案数

2466. 统计构造好字符串的方案数

时间:2024-04-15 16:36:23浏览次数:27  
标签:方案 2466 int 构造 high zero 字符串 rm

题目链接:

本题其实是爬楼梯这道题的变式。

题目要求长度在 \(\rm low \sim high\) 之间的好字符串个数,那我直接把所有长度的好字符串个数搞出来,再取长度在这个区间的相加就完事了。

设 \(f[i]\) 表示构造长为 \(i\) 的字符串的方案数,也即长为 \(i\) 的好字符串的个数。看最后一步是走的 \(\rm zero\) 还是 \(\rm one\),若是前者则有 \(\rm f[i-zero]\) 个方案;若是后者则有 \(\rm f[i - one]\) 个方案。所有的方案数即为合法情况下这两种之和。

class Solution {
public:
    int countGoodStrings(int low, int high, int zero, int one) {
        const int MOD = 1e9 + 7;
        vector<int> f(high + 1);
        f[0] = 1;//构造空串的方案数为1,这是一个常用的技巧
        for (int i = 1; i <= high; i++) {
            if (i >= zero) f[i] = (f[i] + f[i - zero]) % MOD;
            if (i >= one) f[i] = (f[i] + f[i - one]) % MOD;
        }
        int res = 0;
        for (int i = low; i <= high; i++) {
            res = (res + f[i]) % MOD;
        }
        return res;
    }
};

标签:方案,2466,int,构造,high,zero,字符串,rm
From: https://www.cnblogs.com/pangyou3s/p/18136304

相关文章

  • IFreeSql各数据库连接字符串格式
    IFreeSql各数据库连接字符串格式 DataTypeConnectionStringDataType.MySqlDataSource=127.0.0.1;Port=3306;UserID=root;Password=root;InitialCatalog=cccddd;Charset=utf8;SslMode=none;Minpoolsize=1DataType.PostgreSQLHost=192.168.164.10;Port=5432;Us......
  • 正则表达式在字符串中表达
    ysyx的表达式求值环节需要自行编写规则。在样例里,官方已经给出了匹配空格、加号的样例。空格规则对应字符串为"+",表示匹配一个或更多空格。加号表示前面的符号至少出现一次。加号规则则是"\\+" ,首先,加号+在正则表达式里是特殊符号,需要一个反斜杠\转义才能执行,但是反斜杠......
  • CYC 构造
    把若干个无标号的东西串成一个环。例如从\(n\)个点的无标号有根树变成\(n\)个点的无标号基环树就是CYC构造。\[\sum_{k=1}^n{1\overk}\sum_{d=0}^{k-1}F(z^{k/\gcd(d,k)})^{\gcd(d,k)}\\=\sum_{k=1}^n{1\overk}\sum_{d|k}\varphi(d)F(z^{d})^{k/d}\\=\sum_{d=1}^n......
  • 项目中统一处理请求中的字符串参数的空格
    测试controller@RestController@RequestMapping("/test")@Slf4jpublicclassTestController{@GetMapping("/testStringParamTrim")publicTestObjectInfotestStringParamTrim(@RequestParamStringgoodsId,StringgoodsName){......
  • 代码随想录算法训练营第8天 | 字符串 344.反转字符串 541. 反转字符串II 卡码网:54.
    leetcode344.反转字符串题目344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。解题思路实现代码......
  • 代码随想录算法训练营第9天 | 字符串(KMP算法) 28. 找出字符串中第一个匹配项的下标
    leetcode28.找出字符串中第一个匹配项的下标题目28.找出字符串中第一个匹配项的下标给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。解题思路实现代......
  • 字符串基础
    字符串的常见函数:strlen()//计算字符串的长度,即字符串中字符的个数(不包括字符串末尾的空字符'\0'strcpy()//将一个字符串复制到另一个字符串中。目标字符串必须有足够的空间来容纳被复制的字符串。strcat()//将一个字符串追加到另一个字符串的末尾。目标字符......
  • Sql Server对等复制中将截断字符串或二进制数据。 (源: MSSQLServer,错误号: 8152)
    近期发现好好的复制突然出现了报错,导致备份库数据不一致的问题,如下 一直以为是发布数据库进行了DDL操作没有同步到这边来,导致数据同步时长度不够导致的,结果把表都检查了一遍也没发现啥不对劲最后只好去找相关资料,结果找到了官方资料(目前老项目用的14版本) 这边有几个......
  • 字符串
    1.基本命令集 Tcl将所有的变量值视作字符串,并将他们作为字符串来保存。下表列出了字符串操作的几个常用命令。 命令描述append将值追加到字符串尾binary二进制字符串操作format字符串格式化regexp正则表达式(用于字符串模式匹配)regsub用正则表......
  • 字符串占位符替换——StringSubstitutor
    1背景众所周知Java中的字符串占位符替换非常不友好,无论是String#format还是MessageFormat#format都只能说能用,但说不上好用,关于以上两种字符串格式化的用法请参考:JavaStringformat和MessageFormatformat,本文推荐org.apache.commons.text.StringSubstitutor,StrSubstitutor是......