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

931. 用三种不同颜色为网格涂色

931. 用三种不同颜色为网格涂色


题目链接:931. 用三种不同颜色为网格涂色

代码如下:

class Solution {
public:int colorTheGrid(int m, int n) {vector<int> pow3(m);pow3[0] = 1;for (int i = 1;i < m;i++) {pow3[i] = pow3[i - 1] * 3;}vector<int> valid;for (int color = 0;color < pow3[m - 1] * 3;color++) {bool ok = true;for (int i = 1;i < m;i++) {if (color / pow3[i] % 3 == color / pow3[i - 1] % 3) {//相邻的颜色相同ok = false;break;}}if (ok) {valid.push_back(color);}}int nv = valid.size();vector<vector<int>> nxt(nv);for (int i = 0;i < nv;i++) {for (int j = 0;j < nv;j++) {bool ok = true;for (int k = 0;k < m;k++) {if (valid[i] / pow3[k] % 3 == valid[j] / pow3[k] % 3) {//相邻颜色相同ok = false;break;}}if (ok) {nxt[i].push_back(j);}}}vector memo(n, vector<int>(nv, -1));auto dfs = [&](auto&& dfs, int i, int j)->int {if (i == 0) {return 1;// 找到了一个合法涂色方案}int& res = memo[i][j];// 注意这里是引用if (res != -1) { // 之前计算过return res;}res = 0;for (int k : nxt[j]) {res = (res + dfs(dfs, i - 1, k)) % MOD;}return res;};long long res = 0;for (int j = 0;j < nv;j++) {res += dfs(dfs,n - 1, j);}return res % MOD;}private:const int MOD = 1'000'000'007;
};
http://www.xdnf.cn/news/9004.html

相关文章:

  • 力扣刷题(第三十八天)
  • Rk3568驱动开发_设备树点亮LED_11
  • 系统分析师备考总结
  • SPL做量化—-VMA(变异平均线)
  • node.js配置变量
  • 内容的逐次呈现以及二分查找(算法)
  • DeepSORT中的卡尔曼滤波可观测性分析:从原理到实践
  • 提示词写的好,用VSCODE+python+Claude3.5开发edge扩展插件(2)
  • 内网映射有什么作用,如何实现内网的网络地址映射到公网连接?
  • 【东枫科技】基于Docker,Nodejs,GitSite构建一个KB站点
  • 电路中常见器件作用(二极管 三极管 MOS)
  • OpenCV (C/C++) 实现 Scharr 算子进行边缘检测
  • MySQL组合索引优化策略
  • Milvus可视化客户端Attu安装与使用指南
  • esp8266 点灯科技远程控制继电器
  • 如何解决大模型返回的JSON数据前后加上```的情况
  • 2025重庆市赛
  • [java]eclipse中windowbuilder插件在线安装
  • Python 之实用函数enumerate()详解
  • vue项目webpack、vite、rollup、parcel四种构建工具对比
  • HarmonyOS NEXT~鸿蒙操作系统功耗优化特性深度解析
  • STM32F4学习第一天——keil软件安装
  • VS Code新手基础教程
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(二十)
  • yolov8,c++案例汇总
  • 【身份证识别表格】把大量手机拍摄的身份证信息转换成EXCEL表格的数据,拍的身份证照片转成excel表格保存,基于WPF和腾讯OCR的实现方案
  • 微服务(SpringCloud)的简单介绍
  • AI时代新词-机器学习即服务(MLaaS)
  • 蜂鸟E203与PicoRV32两款RISC-V处理器的对比分析
  • 【Pandas】pandas DataFrame add_prefix