分析

我们不难发现对于偶数的情况只要相邻两个数不相等即可

而对于奇数的情况只要中间恰好隔一个数的两个数不相等即可

于是我们又dp[i][0/1]表示考虑到第i位,这一位和它后面离它最近的一个确定的数是否相等

每次从i-1转移即可

注意对于奇数的情况最终答案要n-1和n的dp值相乘以保证合法

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
const int mod = ;
int dp[][],a[],b[],n,m,k;
int main(){
int i,j;
scanf("%d%d%d",&n,&k,&m);
for(i=;i<=n;i++)scanf("%d",&a[i]);
if(m==){
for(i=n-;i>;i--)b[i]=a[i+]?a[i+]:b[i+];
if(a[]&&a[]==b[]){
dp[][]=;
dp[][]=;
}else if(a[]){
dp[][]=;
dp[][]=;
}else {
dp[][]=;
dp[][]=k-;
}
for(i=;i<=n;i++)
if(a[i]&&a[i]==b[i]){
dp[i][]=;
dp[i][]=dp[i-][];
}else if(a[i]){
dp[i][]=;
dp[i][]=dp[i-][];
}else {
dp[i][]=dp[i-][];
dp[i][]=((dp[i][]+1ll*dp[i-][]*(k-)%mod)%mod+1ll*dp[i-][]*(k-)%mod)%mod;
}
printf("%d\n",(dp[n][]+dp[n][])%mod);
}else {
for(i=n-;i>;i--)b[i]=a[i+]?a[i+]:b[i+];
for(i=;i<=;i++){
if(a[i]&&a[i]==b[i]){
dp[i][]=;
dp[i][]=;
}else if(a[i]){
dp[i][]=;
dp[i][]=;
}else {
dp[i][]=;
dp[i][]=k-;
}
}
for(i=;i<=n;i++)
if(a[i]&&a[i]==b[i]){
dp[i][]=;
dp[i][]=dp[i-][];
}else if(a[i]){
dp[i][]=;
dp[i][]=dp[i-][];
}else {
dp[i][]=dp[i-][];
dp[i][]=((dp[i][]+1ll*dp[i-][]*(k-)%mod)%mod+1ll*dp[i-][]*(k-)%mod)%mod;
}
printf("%d\n",1ll*((dp[n][]+dp[n][])%mod)*((dp[n-][]+dp[n-][])%mod)%mod);
}
return ;
}

最新文章

  1. ASP.NET Core project.json imports 是什么意思?
  2. KVM 网络虚拟化基础 - 每天5分钟玩转 OpenStack(9)
  3. Block产生的内存泄露,以及解决方法
  4. 一些有意思的VR设备介绍
  5. 【代码笔记】iOS-3DES+Base64加密解密
  6. pt-query-digest查询日志分析工具
  7. 那些Xcode不能错过的插件
  8. Power Strings 分类: POJ 串 2015-07-31 19:05 8人阅读 评论(0) 收藏
  9. shell脚本变量定义注意别跟系统变量重名了……
  10. ***mysql索引总结----mysql索引类型以及创建
  11. easy ui 下拉框绑定数据select控件
  12. MySQL常用查询
  13. 喷水装置(一)--nyoj题目6
  14. TCP错误恢复特性之一TCP重传
  15. 循环链表设计与API实现
  16. Python练手例子(7)
  17. alert换行
  18. flask的简单使用
  19. vue-常用指令
  20. C#学习笔记(19)——使用IComparer(百度文库)

热门文章

  1. Html mate标签的常见功能
  2. JavaSE编码试题强化练习3
  3. Java可变参数方法
  4. Atlantis poj1151 线段树扫描线
  5. Mysql8- Public Key Retrieval is not allowed
  6. Gos: Armed Golang &#128170;
  7. MTCNN 人脸检测
  8. centos7卸载YUM后重装过程 -bash: yum: command not found / -bash: yum: 未找到命令
  9. linux查看 rsync 服务状态
  10. spring boot 加载指定xml