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

网站正在建设中模板网站备案需要多久时间

网站正在建设中模板,网站备案需要多久时间,wordpress 自适应菜单,故事式软文广告300字1223. 掷骰子模拟 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。 不过我们在使用它时有个约束#xff0c;就是使得投掷骰子时#xff0c;连续 掷出数字 i 的次数不能超过 rollMax[i]#xff08;i 从 1 开始编号#xff09;。 现在#xff0c;…1223. 掷骰子模拟 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。 不过我们在使用它时有个约束就是使得投掷骰子时连续 掷出数字 i 的次数不能超过 rollMax[i]i 从 1 开始编号。 现在给你一个整数数组 rollMax 和一个整数 n请你来计算掷 n 次骰子可得到的不同点数序列的数量。 假如两个序列中至少存在一个元素不同就认为这两个序列是不同的。由于答案可能很大所以请返回 模 10^9 7 之后的结果。 示例 1 输入n 2, rollMax [1,1,2,2,2,3] 输出34 解释我们掷 2 次骰子如果没有约束的话共有 6 * 6 36 种可能的组合。但是根据 rollMax 数组数字 1 和 2 最多连续出现一次所以不会出现序列 (1,1) 和 (2,2)。因此最终答案是 36-2 34。 示例 2 输入n 2, rollMax [1,1,1,1,1,1] 输出30 示例 3 输入n 3, rollMax [1,1,1,2,2,3] 输出181 提示 1 n 5000rollMax.length 61 rollMax[i] 15 算法一动态规划 思路 首先创建一个二维 dp 数组 dp[i][j] 表示第 i 次掷骰子时数字 j 出现的可能的序列总数也就是说第 i 次掷出的数字是 j 所有可能的序列数 其中 1 i n 1 j 6 。 显然 dp[1][1],dp[1][2]… dp[1][6]均为 1 所以最后结果有效序列总数就是 sum (dp[n][1] dp[n][2] … dp[n][6]) sum为求和函数 。 那么如何计算第i次骰子掷出时掷出数字为j的序列总数为多少呢 仔细思考一下dp[i][j]和什么有关? 第一: dp[i][j] 和dp[i-1][j]有关不仅如此dp[i][j] 和 dp[i-1][1], dp[i-1][2],…dp[i-1][6]都有关第二: 由于连续数字限制dp[i][j]还和 dp[i-rollMax[j-1]][1],…,dp[i-rollMax[j-1]][6]均有关所以第i次掷出骰子的序列总数只和第i-1次掷出骰子的序列总数以及第i-rollMax[j-1]次掷出骰子的序列总数有关。详细例子看题解。状态方程为 需要主要对大数的处理 使用 int 型很容易越界 另外代码中有一个特殊条件的判断当 idx 0 时ans 直接减一 此时第 1 次 ~ 第 i - 1次掷出的都是 k 即出现了序列 kkk…kk 因此不合法的情况只有一种所以减一。 算法情况 时间复杂度O6n即On空间复杂度O7n1即 On。 代码 class Solution { public:const int MOD 1e9 7;typedef long long LL;int dieSimulator(int n, vectorint rollMax) {vectorvectorLL dp(n1, vectorLL(7));// 初始化for (int j 1; j 6; j) {dp[1][j] 1;}for (int i 2; i n; i) {for (int j 1; j 6; j) {// 加入第 i-1 次得所有可能序列总数LL ans accumulate(dp[i-1].begin(), dp[i-1].end(), 0LL);int idx i - 1 - rollMax[j-1];if (idx 1) {// 减去 i - 1 - rollMax[j-1]次掷出除j外其他五个数的所有序列总数ans accumulate(dp[idx].begin(), dp[idx].end(), ans, [](LL init, LL e) {return init MOD - e;});ans dp[idx][j];}else if (idx 0) {// 特殊情况处理ans - 1;}dp[i][j] ans % MOD;}}return accumulate(dp[n].begin(), dp[n].end(), 0LL) % MOD;} }; 参考资料 超简单动态规划 复杂度O(n)
http://www.dnsts.com.cn/news/60135.html

相关文章:

  • php做的网站首页是什么文件注册网站怎么注册
  • 佛山网页网站设计多少钱企业微信客户管理
  • 手机免费网站新浪邮箱登录网页
  • 建设网站全部流程黄页官网
  • 良庆网站建设wordpress腾讯后台账号
  • app网站开发定制苏州软件开发
  • 海城建设网站如何给一个网站做压测
  • pageadmin自助建站十堰优化网站哪家好
  • 别人用我的备案信息做网站app软件开发企业
  • 高端平面网站长沙推广型网站建设
  • 网站建设到上线一级做爰片免费网站
  • html好看的网站的代码有哪些网站可以做网站游戏
  • 做网站前的准备工作微网站的图标怎么做
  • 潍坊网站建设价格得到app创始人
  • 网站是公司域名是个人可以吗农林网站建设
  • 淮南正规建设网站品牌济南市住房和城乡建设局官方网站
  • 微网站 价格asp.net开发的网站
  • 西安 网站建设 培训班新网站排名优化
  • 网站必须要实名认证么网站开发技术创业计划
  • 山西省住房建设厅网站房屋建筑定额专业网站开发多少钱
  • 十大免费不用收费的网站建德建设局官方网站
  • 网站如何做更新星沙网站建设
  • 公司做网站推广百度和阿里巴巴dedecms网站别名
  • jsp网站自身安全性通过什么技术实现镇江网站公司
  • 个人网站设计提纲网络技术是什么
  • 怎么查询网站空间商网页设计作业之玩具商城网站
  • 无限容量网站简述jsp网站开发的环境配置
  • wdcp 网站迁移长安网站制作
  • 广东企业网站建设价格陕西省住房城乡建设厅网站管理中心
  • 扁平化设计网站 源码wordpress 文章免审核