牛客 Bang! Bang!(动态规划)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

链接:https://ac.nowcoder.com/acm/contest/9715/C
来源:牛客网

音游狂热爱好者牛牛接到了一个新的任务,那就是给一张乐谱设计重音符。每当玩家敲击重音符的时候就会发出"bang"的美妙声音!!

每一张乐谱都有n个音符从左到右一字排开,现在牛牛的任务就是选出其中m个音符将其标记为重音符,同时任意两个重音符之间都必须隔着至少k个音符。

一个有意思的问题诞生了,请求出这样合法的设计方案种数,并输出答案对1000000007取模的结果。

示例1
输入
3,2,1
返回值
1

备注:

2. 解题

  • dp[pos][time] 表示在位置 pos 时,第 time 次的方案数
class Solution {
public:/*** * @param n int整型 乐谱总音符数* @param m int整型 重音符数* @param k int整型 重音符之间至少的间隔* @return long长整型*/typedef long long ll;long long solve_bangbang(int n, int m, int k) {// write code hereif(m == 0) return 1;int mod = 1e9+7;vector<vector<ll>> dp(n, vector<ll>(m+1, 0));for(int i = 0; i < n; i++)dp[i][1] = 1;for(int t = 2; t <= m; t++){for(int i = 0; i < n; ++i){if(dp[i][t-1] == 0)continue;for(int j = i+k+1; j < n; ++j){dp[j][t] += dp[i][t-1];dp[j][t] = (dp[j][t]%mod);}}}ll ans = 0;for(int i = 0; i < n; ++i)ans = (ans+dp[i][m])%mod;return ans;}
};

227ms

class Solution {
public:/*** * @param n int整型 乐谱总音符数* @param m int整型 重音符数* @param k int整型 重音符之间至少的间隔* @return long长整型*/typedef long long ll;long long solve_bangbang(int n, int m, int k) {// write code hereif(m == 0) return 1;int mod = 1e9+7;vector<vector<ll>> dp(n, vector<ll>(m+1, 0));for(int i = 0; i < n; i++)dp[i][1] = 1;for(int i = 1; i < n; ++i){if(i-k-1 >= 0)for(int t = 1; t < m; t++){dp[i][t+1] = dp[i-k-1][t];}for(int t = 1; t <= m; t++){dp[i][t] += dp[i-1][t];dp[i][t] %= mod;}}return dp[n-1][m];}
};

4ms


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Python爬取网易上证所有股票数据(代码

import urllib.request import re##def downback(a,b,c): ## ## a:已经下载的数据块 ## b:数据块的大小 ## c:远程文件的大小 ## ## per 100.0 * a * b / c ## if per > 100 : ## per 100 ## print(%.2f%% % per) stock_CodeUrl http://…

Andorid 反编译App

转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/23564065 开发的过程中&#xff0c;有时候可能会去使用别的app里面的图片&#xff0c;参考布局甚至代码等&#xff0c;但是一般的.apk都是经过代码混淆的&#xff0c;这里分享下使用一些工具进行…

Ubuntu Linux系统下搭建自己的Web服务器

经常被拿来当服务器的有CentOS、Ubuntu......考虑到自己只有Ubuntu的镜像并且只是自己做一些简单的测试使用&#xff0c;所以选择的版本是Ubuntu 14.04 LTS。在这个平台上搭建自己的Web服务器。 相比在Windows下的wamp集成环境&#xff0c;Linux系统下同样有LAMP&#xff0c;不…

天池 在线编程 安排面试城市(贪心)

文章目录1. 题目2. 解题1. 题目 来源&#xff1a;https://tianchi.aliyun.com/oj/210874425247820050/215397455965131520 今天有N个面试者需要面试&#xff0c;公司安排了两个面试的城市A和B&#xff0c;每一个面试者都有到A城市的开销costA和到B城市的开销costB。 公司需要…

别用symbolicatecrash来解析crash Log了

今天突然发现了一个解析iOS crash log的好方法&#xff0c;忍不住来分享一下。 相信每个做iOS开发的TX都应该不会对symbolicatecrash陌生&#xff0c;我们第一次遇到真机上产生的崩溃日志时&#xff0c;在网上搜到的大部分教程都告诉我们说要用symbolicatecrash来解析crash log…

天池 在线编程 捡胡萝卜(模拟)

文章目录1. 题目2. 解题1. 题目 来源&#xff1a;https://tianchi.aliyun.com/oj/210874425247820050/215397455965131519 给定一个n * m 的矩阵 carrot, carrot[i][j] 表示(i, j) 坐标上的胡萝卜数量。 从矩阵的中心点出发&#xff0c;每一次移动都朝着四个方向中胡萝卜数量…

VMware中ubuntu虚拟机与windows的端口映射,共享一个IP地址

在ubuntu虚拟机中&#xff0c;运行了meteor的后台程序&#xff0c;需要终端进行连接&#xff0c;需要进行ubuntu虚拟机与windows的端口映射&#xff08;虚拟机与主机共享IP地址&#xff09;。 下面为设置步骤&#xff1a; 1.点击编译&#xff0c;虚拟网络编辑器2.在虚拟网络编辑…

LeetCode 1678. 设计 Goal 解析器

文章目录1. 题目2. 解题1. 题目 请你设计一个可以解释字符串 command 的 Goal 解析器 。 command 由 "G"、"()" 和/或 "(al)" 按某种顺序组成。 Goal 解析器会将 “G” 解释为字符串 “G”、 “()” 解释为字符串 “o” &#xff0c; “(al)” …

Go 变量和常量

最近在看Go相关的书籍&#xff0c;看到go相关的语法&#xff0c;非常的简洁和亮眼&#xff0c;就准备学习一下相关的资料&#xff0c;将自己看到的书籍记录一下笔记&#xff0c;补充一下工作之余的相关知识。先开始Go的语法 一:变量 1.0&#xff1a;变量申明 var a int //定义一…

Jmeter使用入门

Jmeter简介Jmeter的基本概念百度百科&#xff1a;Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 它可以用于测试静态和动态资源&#xff0c;例如静态文件、Jav…

阿里云 Windows Server 2022 安装 Docker

阿里云Windows Server 2022 安装 Docker 文章目录 情景尝试正解 安装Docker管理工具安装Docker重启系统配置Docker系统路径配置Docker引擎(也许不用)启动Docker服务 情景 情景&#xff1a;最近一直在搞微服务&#xff0c;团队的服务器是阿里云的 Windows Server 2022&…

LeetCode 1679. K 和数对的最大数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 和一个整数 k 。 每一步操作中&#xff0c;你需要从数组中选出和为 k 的两个整数&#xff0c;并将它们移出数组。 返回你可以对数组执行的最大操作数。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,4], k 5 输…

android第二十步摄像

MediaRecorder摄像类 recorder new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC);音频取自麦克 recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);视频取自摄像机 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);/…

正则表达式之 贪婪与非贪婪模式详解

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为&#xff0c;贪婪模式在整个表达式匹配成功的前提下&#xff0c;尽可能多的匹配&#xff0c;而非贪婪模式在整个表达式匹配成功的前提下&#xff0c;尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。 属于贪婪…

LeetCode 1680. 连接连续二进制数字(位运算)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n &#xff0c;请你将 1 到 n 的二进制表示连接起来&#xff0c;并返回连接结果对应的 十进制 数字对 10^9 7 取余的结果。 示例 1&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;1 解释&#xff1a;二进制的 "1"…

网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处

转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/23866427 今天又遇到一个网页数据抓取的任务&#xff0c;给大家分享下。 说道网页信息抓取&#xff0c;相信Jsoup基本是首选的工具&#xff0c;完全的类JQuery操作&#xff0c;让人感觉很舒服。但…

jmeter进行http压力测试(图文小教程)

下载地址&#xff1a;http://jmeter.apache.org/download_jmeter.cgiJMeter基于Java开发&#xff0c;需要系统有安装JDK环境。解压后进入bin目录&#xff0c;点击jmeter.bat1、添加线程组&#xff1a; 测试计划 -> 添加 -> Threads(User) -> 线程组&#xff0c;添加后…

LeetCode 1681. 最小不兼容性(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中&#xff0c;使得同一个子集里面没有两个相同的元素。 一个子集的 不兼容性 是该子集里面最大值和最小值的差。 请你返回将数组分成 k 个子集后&…

css bug 集2

问题浏览器DEMO解决方法Hacking Rules:property:all-ie\9; property:gte-ie8\0;*property:lte-ie7; property:ie7; _property:ie6;1input[button | submit] 不能用 margin:0 auto; 居中IE8bug | fixed为input添加width2body{overflow:hidden;}没有去掉滚动条IE6/7bug | fixed设…

python读取Excel实例详细教程

1.操作步骤&#xff1a;&#xff08;1&#xff09;安装python官方Excel库-->xlrd&#xff08;2&#xff09;获取Excel文件位置并读取&#xff08;3&#xff09;读取sheet&#xff08;4&#xff09;读取指定rows和cols内容2.示例代码&#xff1a; # -*- coding: utf-8 -*-imp…