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

C#,栅栏油漆算法(Painting Fence Algorithm)的源代码

1 刷油漆问题

给定一个有n根柱子和k种颜色的围栏,找出油漆围栏的方法,使最多两个相邻的柱子具有相同的颜色。因为答案可以是大的,所以返回10^9+7的模。

计算结果:

2 栅栏油漆算法的源程序

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class Number_Sequence
    {
        public static long Painting_Fence_Number(int n, int k)
        {
            long[] dp = new long[n + 1];
            int mod = 1000000007;
            dp[1] = k;

            int same = 0;
            int diff = k;

            for (int i = 2; i <= n; i++)
            {
                same = diff;

                diff = (int)(dp[i - 1] * (k - 1));
                diff = diff % mod;

                dp[i] = (same + diff) % mod;
            }

            return dp[n];
        }

        public static long Painting_Fence_Number_Second(int n, int k)
        {
            long total = k;
            int mod = 1000000007;

            long same = 0;
            long diff = k;

            for (int i = 2; i <= n; i++)
            {
                same = diff;

                diff = total * (k - 1);
                diff = diff % mod;

                total = (same + diff) % mod;
            }

            return total;
        }
    }
}
 

——————————————————

POWER BY TRUFFER.CN

3 代码格式

using System;namespace Legalsoft.Truffer.Algorithm
{public static partial class Number_Sequence{public static long Painting_Fence_Number(int n, int k){long[] dp = new long[n + 1];int mod = 1000000007;dp[1] = k;int same = 0;int diff = k;for (int i = 2; i <= n; i++){same = diff;diff = (int)(dp[i - 1] * (k - 1));diff = diff % mod;dp[i] = (same + diff) % mod;}return dp[n];}public static long Painting_Fence_Number_Second(int n, int k){long total = k;int mod = 1000000007;long same = 0;long diff = k;for (int i = 2; i <= n; i++){same = diff;diff = total * (k - 1);diff = diff % mod;total = (same + diff) % mod;}return total;}}
}

http://www.lryc.cn/news/296256.html

相关文章:

  • java_error_in_pycharm.hprof文件是什么?能删除吗?
  • LeetCode 491 递增序列
  • 考研/计算机二级数据结构刷题之顺序表
  • Git 代码协同的使用方法 for Azure DevOps
  • 数据库学习笔记2024/2/5
  • PSM-Net根据Stereo图像生成depth图像
  • Mocaverse NFT 概览与数据分析
  • SpringBoot之事务源码解析
  • FPGA高端项目:解码索尼IMX327 MIPI相机转USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持
  • 基于高通滤波器的ECG信号滤波及心率统计matlab仿真
  • springCould中的gateway-从小白开始【9】
  • 邮箱营销软件推荐?企业邮箱群发会限制吗?
  • 编译原理实验3——自下而上的SLR1语法分析实现(包含画DFA转换图、建表、查表)
  • 基于tomcat的https(ssl)双向认证
  • 【iOS ARKit】3D人体姿态估计实例
  • ROS2 CMakeLists.txt 和 package.xml
  • 代码献瑞,算力有礼!低代码开发工具PaddleX特色产线新春福利来啦
  • C语言:操作符详解
  • Rust 初体验2
  • vue-cil的watch函数详解
  • 堆排及时间复杂度分析
  • 数据结构:双向链表
  • 51单片机之数码管显示表白数字篇
  • 代码随想录算法训练营DAY16 | 二叉树 (3)
  • springboot(ssm大学生计算机基础网络教学系统 在线课程系统Java系统
  • 前端架构: 脚手架的开发流程和常用框架
  • 3.0 Hadoop 概念
  • mysql 对于null字段排序处理
  • NLP_语言模型的雏形 N-Gram 模型
  • mac电脑flutter环境配置,解决疑难问题