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

luogu4187 [USACO18JAN]Stamp Painting (dp)

可以发现,只要存在连续k个相同的,这个情况就一定是合法情况

然而这个不太好算,我们算不存在k个相同的,然后用$m^n$把它减掉

设f[i]为前i个,没有连续k个的

显然$f[i]=m^i ,i<K$

然后我们现在想把f[i]转移过来,只要取f[i-k+1]..f[i-1]的所有情况,然后在每个的后面都涂上与这种情况的最后一个颜色不相同的颜色就可以了。容(bu)易(hui)证明这样做是不重不漏的

所以$f[i]=(M-1)\sum_{j=i-K+1}^{i-1}f[j]$

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 #define pa pair<int,int>
 4 using namespace std;
 5 const int maxn=1000010,mod=1e9+7;
 6 
 7 inline ll rd(){
 8     ll x=0;char c=getchar();
 9     while(c<'0'||c>'9') c=getchar();
10     while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
11     return x;
12 }
13 
14 ll N,M,K;
15 ll f[maxn];
16 ll ans=1,sum;
17 
18 int main(){
19     int i,j,k;
20     N=rd(),M=rd(),K=rd();
21     for(i=1;i<=N;i++){
22         ans=(ans*M)%mod;
23         if(i<K) f[i]=ans,sum=(sum+ans)%mod;
24     }
25     for(i=K;i<=N;i++){
26         f[i]=(sum*(M-1))%mod;
27         sum=(sum+f[i]-f[i-K+1])%mod;
28     }
29     printf("%d\n",((ans-f[N])%mod+mod)%mod);
30 }

 

转载于:https://www.cnblogs.com/Ressed/p/9661855.html

相关文章:

  • jsencrypt vue使用_在VUE中使用RSA加密解密加签解签__Vue.js
  • Learning-Python【6】:Python数据类型(2)—— 列表、元组
  • 如何计算虚拟化vcpu_【虚拟化实战】VM设计之一vCPU
  • 小希的迷宫(并查集判环)
  • 标志寄存器df_标志寄存器的详细解释
  • 分布式框架
  • c++ vector 头文件_Vector:C++界热销的Pro版数组
  • MFC中ON_COMMAND,ON_MESSAGE,ON_NOTIFY的区别
  • pdo mysql insert id_php pdo insert与pdo insertId的用法
  • 使用hbuilder打包时,调用地图和相机
  • mysql 无限分级 栏目_PHP+MySQL实现无极限分类栏目的方法
  • AOP,过滤器,监听器,拦截器【转载】
  • idea里configurations没有spingboot启动配置_Springboot 系列(三)Spring Boot 自动配置原理解析...
  • mysql 5.7 zip 安装_MySQL 5.7 zip版本(zip版)安装配置步骤详解
  • reactjs-swiper react轮播图组件基于swiper
  • 时间复杂度分析经典问题——最大子序列和
  • 0基础学习移动端适配
  • docker容器内的网络抓包
  • ES2017异步函数现已正式可用
  • flutter的key在widget list的作用以及必要性
  • input实现文字超出省略号功能
  • JavaScript-Array类型
  • Java新版本的开发已正式进入轨道,版本号18.3
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • spark本地环境的搭建到运行第一个spark程序
  • Spring框架之我见(三)——IOC、AOP
  • 诡异!React stopPropagation失灵
  • 记录:CentOS7.2配置LNMP环境记录
  • 前端相关框架总和
  • 推荐一个React的管理后台框架
  • # 计算机视觉入门
  • #图像处理
  • $ git push -u origin master 推送到远程库出错
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C)一些题4
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (译)2019年前端性能优化清单 — 下篇
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .Net - 类的介绍
  • .NET CLR基本术语
  • .Net IE10 _doPostBack 未定义
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • @Autowired注解的实现原理
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @EnableWebMvc介绍和使用详细demo
  • @WebService和@WebMethod注解的用法
  • [Android] Amazon 的 android 音视频开发文档
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [BZOJ] 3262: 陌上花开
  • [FUNC]判断窗口在哪一个屏幕上
  • [IE9] 解决了傲游、搜狗浏览器在IE9下网页截图的问题