18730 涂色问题

news2024/12/27 16:13:02

这个问题可以通过动态规划来解决。我们可以定义一个状态dp[i][j],表示前i个牛舍中最后一个牛舍的颜色是j的涂色方案数量。然后我们可以通过状态转移方程来更新dp[i][j]。

状态转移方程如下:

dp[i][j] = dp[i-1][k] (k != j)

然后我们需要对所有的dp[i][j]求和,得到的结果就是所有的涂色方案数量。

但是由于n和m的范围都可以达到1e12,直接使用动态规划会导致时间复杂度和空间复杂度都无法接受。因此我们需要找到一个更有效的方法来解决这个问题。

观察可以发现,如果我们知道了前i-1个牛舍的涂色方案数量,那么我们就可以通过一次计算得到前i个牛舍的涂色方案数量。因此我们可以使用矩阵快速幂来优化我们的算法。

以下是C++代码实现:

#include <iostream>
using namespace std;
typedef long long ll;
const ll mod = 1e9+7;

ll quick_pow(ll a, ll b) {
    ll ans = 1;
    while(b) {
        if(b & 1) ans = ans * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return ans;
}

int main() {
    ll n, m;
    cin >> n >> m;
    ll ans = quick_pow(m, n);
    ll temp = quick_pow(m-1, n-1) * m % mod;
    ans = (ans - temp + mod) % mod;
    cout << ans << endl;
    return 0;
}

在这段代码中,我们首先读取输入的n和m,然后计算m的n次方和(m-1)的(n-1)次方乘以m,这两个值分别代表所有的涂色方案数量和不会让奶牛发疯的涂色方案数量。然后我们将两个值相减,得到的结果就是会让奶牛发疯的涂色方案数量。最后,我们输出结果。

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

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

相关文章

数据结构——排序(C语言版)

冒泡排序&#xff1a; 冒泡排序是一种简单直观的排序算法&#xff0c;其基本思想是多次遍历待排序数组&#xff0c;每次遍历时比较相邻的两个元素&#xff0c;如果它们的顺序不符合排序规则&#xff08;比如升序&#xff09;&#xff0c;则交换它们的位置&#xff0c;直到整个数…

Oracle数据库入门

目录 Oracle基础概念数据库安装连接Oracle查看当前用户 数据表的基本概念查看当前系统表Orcale函数单行函数多行函数/组函数/聚合函数 SQL语句DMLinsert批量插入数据创建新表在旧表中插入 delete全表删除 update DDLcreatealterdrop 连接 Oracle基础概念 数据库: 数据的仓库 以…

探索大模型的“心理理论”能力:TMBENCH基准测试

人工智能咨询培训老师叶梓 转载标明出处 心理理论是理解他人信念、意图、情感等心理状态的能力&#xff0c;对人类社会交往至关重要。近期研究引发了关于LLMs是否展现出ToM的辩论。然而&#xff0c;现有的评估方法受限于范围狭窄、主观判断和潜在的数据污染等问题&#xff0c;无…

万能DIY预约小程序源码系统 自由DIY 适合任何行业的在线预约小程序 带源代码包以及搭建部署教程

系统概述 随着移动互联网的发展&#xff0c;小程序作为一种轻量级应用&#xff0c;因其便捷性和易用性而受到广大用户的喜爱。各行各业都在积极探索如何利用小程序提升服务体验。小编给大家分享一款万能DIY预约小程序的源码系统&#xff0c;该系统支持自由定制&#xff0c;适用…

S3GCL Spectral, Swift, Spatial Graph Contrastive Learning

发表于:PMLR24 推荐指数: #paper/⭐⭐⭐ 总结做了什么: 利用gcn对比学习训练mlp来提取特征嵌入,使得训练完毕使用的时候,可以更快的得到嵌入(类似于师生蒸馏的加速).其中,结合了异配图的chebnet2,以及高通低通过滤,和非对称对比学习等 看图解释:作者将全通的MLP训练得到的嵌入…

PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略

​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 概述基础篇初级篇进阶篇…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 7月31日,星期三

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年7月31日 星期三 农历六月廿六 1、 海关总署&#xff1a;我国关税总水平目前已经降至7.3%&#xff0c;接近发达国家平均水平。 2、 网络身份证要来了&#xff1a;两部门征求意见&#xff0c;拟为社会公众统一签发网号、网证…

HighConcurrencyCommFramework c++通讯服务器框架 :网路通迅实战

数据总在两端进行&#xff0c;一个客户端&#xff0c;一个服务器端 连接建立起来&#xff0c;数据双向流动&#xff0c;这叫双工&#xff0c;你可以发给我我也可以发给你 既然服务器端是被动的接受的&#xff0c;那么客户端必须得知道服务器的地址 我浏览器要访问的淘宝网&a…

基于Spring boot + Vue的加油站系统

项目名称&#xff1a;加油站系统 作者的B站地址&#xff1a;程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csdn地址&#xff1a;程序员云翼-CSDN博客 1.项目技术栈&#xff1a; 前后端分离的项目 后端&#xff1a;Springboot MybatisPlus 前端&#xff1a;Vue…

Jetbrains Idea插件开发教程

背景介绍 痛点&#xff1a;在idea开发过程中&#xff0c;希望按需驼峰选中文本。现在默认是一整个单词选中&#xff0c;只有在设置–>智能按键 中开启了使用"CamelHumps单词"时能够驼峰选中。但是这种情况比较粗暴&#xff0c;直接全局开启了。但是在日常开发中&…

论文《Few-Shot Object Detection with Model Calibration》的解读

《Few-Shot Object Detection with Model Calibration》论文的解读 作者&#xff1a;Qi Fan1, Chi-Keung Tang1 , and Yu-Wing Tai1,2 单位&#xff1a;1 The Hong Kong University of Science and Technology, 2 Kuaishou Technology 邮箱&#xff1a;fanqicsgmail.com, ckta…

Unity | Shader基础知识(第二十一集:应用-怪兽膨胀、顶点着色器和表面着色器合并)

目录 一、前言 二、资源介绍 三、顶点着色器和表面着色器一起使用基础 1.使用表面着色器代码 2.光照选择 3.加入顶点着色器 4.补充表面着色器 四、在顶点着色器中完成怪兽膨胀功能 1.膨胀原理解释 2.完成膨胀代码 1&#xff09;.写出需要的结构体 2&#xff09…

修改所属用户/用户组——chown

目录 &#xff08;1&#xff09;修改所属用户 &#xff08;2&#xff09;修改所属用户组 &#xff08;3&#xff09;修改所属用户和用户组 &#xff08;4&#xff09; 选项 -R 使用 chown 可以修改文件/文件夹的所属用户&#xff0c;所属用户组&#xff1b; 当然与 chmod …

7thonline第七在线出席中服协时尚科技峰会 探讨AI商品管理落地

7月25-26日&#xff0c;中国服装协会2024中国时尚科技创新峰会在杭州隆重举行&#xff0c;本次大会以“新质焕能&#xff0c;革故鼎新”为主题&#xff0c;为持续推动服装产业鼎力创新&#xff0c;以新质生产力的新特征为引领&#xff0c;布局高质量发展新赛道&#xff0c;充分…

MySQL基础练习题15-进店却未进行交易过的顾客

题目&#xff1a;有一些顾客可能光顾了购物中心但没有进行交易。来查找这些顾客的 ID &#xff0c;以及他们只光顾不交易的次数。 准备数据 分析数据 题目&#xff1a;有一些顾客可能光顾了购物中心但没有进行交易。来查找这些顾客的 ID &#xff0c;以及他们只光顾不交易的次…

c++迭代器的介绍

迭代器主要的作用就是为了可以像数组那样实现指针向后移动到下一个数据。同时迭代器统一了所有容器&#xff0c;让所有容器可以通过迭代器互通数据。 那么下面我们来看看迭代器 数组的优势 我们数组的优势就是内存连续&#xff0c;那么我们将首地址的地址进行加减就可以访问…

【多线程】补充内容 {线程池;线程安全的单例模式;STL容器、智能指针的线程安全;其他常见的各种锁:自旋锁、读写锁}

一、线程池 1.1 概念 线程池一种线程使用模式&#xff1a; 线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。 而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的任务&#xff1a;&#xff08;线程池的优点&#xff09; 这避免了在处…

将真实世界带入实验室—如何使用ALPS进行网络损伤仿真测试

不完美的真实世界网络 不同于稳定、可控的传统网络实验室的网络环境&#xff0c;真实世界的网络环境面临着许多挑战和风险&#xff0c;这些挑战在很大程度上增加了网络的脆弱性和复杂性&#xff1a; &#xff08;1&#xff09;物理损伤&#xff1a;真实世界的网络基础设施&am…

Java扫码点餐系统奶茶店类型堂食配送小程序源码

&#x1f964;【奶茶新风尚&#xff01;扫码点餐系统&#xff0c;堂食配送两不误】&#x1f964; &#x1f3e0;【堂食新体验&#xff1a;一键下单&#xff0c;即享美味】&#x1f3e0; 踏入心仪的奶茶店&#xff0c;不再需要排队等候点单&#xff0c;只需拿起手机&#xff0…

TongHttpServer 简介

1. 概述 随着网络技术的飞速发展,高并发大用户场景越来越普遍,单一应用服务节点已经不能满足并发需求,为了提高整个系统可靠性,扩展性,吞吐率,通常将多个应用服务器通过硬负载/软负载组成集群,负载均衡器根据不同负载算法将请求分发到各个应用服务器节点。 Tong…