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

2318.不同骰子序列的数目

经典的DP题目,求方案数 从序列中最后一个数字往前考虑 当前状态取决于前一个的状态和再前一个的状态所以dp(n,last,last1)为当前考虑的是第n个并且前一个数字是last 再前一个数字是last1的所有方案数,递归的边界是n==0 时候 返回1表示找到了一个合法的方案,我这里想说的是

DP其实记忆化的写法更加本质一些,更能体现它是一种暴力的手段

const int N = 1e4+10;
using ll = long long;
ll dp[N][10][10];
int mod = 1e9+7;


ll dfs(int n,int last,int last1){
    if(n==0)return 1;
    if(~dp[n][last][last1])return dp[n][last][last1];

    ll res = 0;
    for(int i=1;i<=6;i++)
     if(i!=last&&i!=last1&&__gcd(i,last)==1)
      res = (res + dfs(n-1,i,last))%mod;
    
    return dp[n][last][last1] = res%mod;

}


class Solution {
public:

    int distinctSequences(int n) {
        memset(dp,-1,sizeof dp);
        return dfs(n,7,7);        
    }
};


http://www.kler.cn/news/108940.html

相关文章:

  • 在Linux上使用Docker实现应用程序打包和分发
  • Day10力扣打卡
  • DIANA算法c++实现
  • Annotorious入门教程:图片注释工具
  • React 生成传递给无障碍属性的唯一 ID
  • 【Git企业开发】第一节.Git 初识
  • 队列(Queue)概念+通过单、双链表来模拟队列+环形队列+OJ面试题(用队列实现栈、用栈实现队列、设计环形队列)
  • [Python]unittest-单元测试
  • Pytorch detach()方法
  • Transformers实战(二)快速入门文本相似度、检索式对话机器人
  • ChatGPT扩展系列之ChatExcel
  • Python连接数据库报错处理
  • 数组OJ题汇总(一)
  • PHP下载文件
  • Linux shell编程学习笔记16:bash中的关联数组
  • 高级深入--day42
  • 缓解大模型幻觉问题的解决方案
  • Python算法例2 判断平方数
  • python基础语法(十一)
  • 【wespeaker】模型ECAPA_TDNN介绍
  • 【MATLAB源码-第58期】基于蛇优化算法(SO)和粒子群优化算法(PSO)的栅格地图路径规划最短路径和适应度曲线对比。
  • 【Flutter】Flutter 中的图片管理 图片优化的最佳实践
  • pandas 统计函数
  • UE5使用Dash插件实现程序化地形场景制作
  • 「实验记录」CS144 Lab0 networking warmup
  • docker 部署prometheus和grafana
  • Python之函数-函数概念
  • HTTPS协议:保障网络安全的加密通信协议
  • 一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium
  • 一个基于Excel模板快速生成Excel文档的小工具