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]$
#include<bits/stdc++.h>
#define ll long long
#define pa pair<int,int>
using namespace std;
const int maxn=,mod=1e9+; inline ll rd(){
ll x=;char c=getchar();
while(c<''||c>'') c=getchar();
while(c>=''&&c<='') x=x*+c-'',c=getchar();
return x;
} ll N,M,K;
ll f[maxn];
ll ans=,sum; int main(){
int i,j,k;
N=rd(),M=rd(),K=rd();
for(i=;i<=N;i++){
ans=(ans*M)%mod;
if(i<K) f[i]=ans,sum=(sum+ans)%mod;
}
for(i=K;i<=N;i++){
f[i]=(sum*(M-))%mod;
sum=(sum+f[i]-f[i-K+])%mod;
}
printf("%d\n",((ans-f[N])%mod+mod)%mod);
}
luogu4187 [USACO18JAN]Stamp Painting (dp)的更多相关文章
- 2018.10.25 洛谷P4187 [USACO18JAN]Stamp Painting(计数dp)
		传送门 其实本来想做组合数学的2333. 谁知道是道dpdpdp. 唉只能顺手做了 还是用真难则反的思想. 这题我们倒着考虑,只需要求出不合法方案数就行了. 这个显然是随便dpdpdp的. f[i]f ... 
- [USACO18JAN]Stamp Painting
		Description: Bessie想拿\(M\) 种颜色的长为\(K\) 的图章涂一个长为\(N\) 的迷之画布.假设他选择涂一段区间,则这段区间长度必须为\(K\) ,且涂完后该区间颜色全变成图 ... 
- AtCoder Grand Contest 012 B - Splatter Painting(dp)
		Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement Squid loves painting v ... 
- 【Gym 100015B】Ball Painting(DP染色)
		题 There are 2N white balls on a table in two rows, making a nice 2-by-N rectangle. Jon has a big pai ... 
- BZOJ5190 Usaco2018 Jan Stamp Painting(动态规划)
		可以大胆猜想的一点是,只要有不少于一个长度为k的颜色相同子串,方案就是合法的. 直接算有点麻烦,考虑减去不合法的方案. 一个正(xue)常(sha)的思路是枚举序列被分成的段数,问题变为用一些1~k- ... 
- luogu4187
		P4187 [USACO18JAN]Stamp Painting 样例 input3 2 2output6 input6 10 5output190 sol:首先可以发现,对于合法的序列,只要有一串至 ... 
- Painting The Wall 期望DP Codeforces 398_B
		B. Painting The Wall time limit per test 1 second memory limit per test 256 megabytes input standard ... 
- SGU 183. Painting the balls( dp )
		dp..dp(i, j)表示画两个点为i-j, i的最优答案. dp(i, j) = min{ dp(i-j, k) } + cost[i] (1≤k≤M-j) 令f(i, j) = min{dp(i ... 
- Codeforces Round #256 (Div. 2) C. Painting Fence 或搜索DP
		C. Painting Fence time limit per test 1 second memory limit per test 512 megabytes input standard in ... 
随机推荐
- linux文件句柄数
			1.问题阐述: too many open files:顾名思义即打开过多文件数. 不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以 ... 
- Spring Cloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus
			在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化.但试想一下, 在分布式系统中,如果存在很 ... 
- mybatis 缓存的使用, 看这篇就够了
			目录 1 一级缓存 1.1 同一个 SqlSession 1.2 不同的 SqlSession 1.3 刷新缓存 1.4 总结 2 二级缓存 2.1 配置二级缓存 2.2 使用二级缓存 2.3 配置详 ... 
- [C#]使用Windows Form开发的天气预报小工具
			用C#编写的天气预报小工具 功能 1.查询中国省份.城市及地区三级的天气预报: 2.显示1-7天一周的天气预报及未来8-15天的天气预报: 3.能定制地区的天气预报. 界面 源代码: https:// ... 
- *C#(WPF)--矩阵拖动和矩阵动画(拖动展开,不足动画效果)
			最近在研发新的项目,遇到了一个桌面模式下的难点--展开动画.之前动画这方面没做过,也许很多人开始做的时候也会遇到相关问题,因此我把几个重点及实际效果图总结展示出来: 我的开发环境是在VS2017下进行 ... 
- MVC 使用cshtml的一些基础知识-和相关整理
			首先在认识cshtml之前,先要了解一下Razor视图引擎 如果对此有疑问的话可以借鉴 博客园博文:http://kb.cnblogs.com/page/96883/ 或 博客博文:http://ww ... 
- Nagios图像绘制插件PNP4Nagios部署和测试
			注:本篇博客Nagios版本Nagios-3.5.1 1. 概述2. 关于PNP4Nagios3. 部署PNP4Nagios3.1 下载PNP4Nagios3.2 编译安装3.3 目录文件说明4. 配 ... 
- 递归遍历对象获取value值
			let menu = { name: '一级菜单', data: { name: '二级菜单', data: { name: '三级菜单', data: { name: '四级菜单' } } } }; ... 
- 写入mssql出现乱码
			1.出现乱码的场景如下: --------------------------------------------------------------------------------------- ... 
- 分布式监控系统Zabbix3.4-针对MongoDB性能监控操作笔记
			公司在IDC机房的一台服务器上部署了MongoDB,由于所存储的业务数据比较重要,所以对MongoDB的监控显得尤为重要!Zabbix监控MongoDB性能的原理:通过echo "db.se ... 
