牛客提高D6t2 破碎的序列
2024-09-05 22:55:26
分析
我们不难发现对于偶数的情况只要相邻两个数不相等即可
而对于奇数的情况只要中间恰好隔一个数的两个数不相等即可
于是我们又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 ;
}
最新文章
- ASP.NET Core project.json imports 是什么意思?
- KVM 网络虚拟化基础 - 每天5分钟玩转 OpenStack(9)
- Block产生的内存泄露,以及解决方法
- 一些有意思的VR设备介绍
- 【代码笔记】iOS-3DES+Base64加密解密
- pt-query-digest查询日志分析工具
- 那些Xcode不能错过的插件
- Power Strings 分类: POJ 串 2015-07-31 19:05 8人阅读 评论(0) 收藏
- shell脚本变量定义注意别跟系统变量重名了……
- ***mysql索引总结----mysql索引类型以及创建
- easy ui 下拉框绑定数据select控件
- MySQL常用查询
- 喷水装置(一)--nyoj题目6
- TCP错误恢复特性之一TCP重传
- 循环链表设计与API实现
- Python练手例子(7)
- alert换行
- flask的简单使用
- vue-常用指令
- C#学习笔记(19)——使用IComparer(百度文库)
热门文章
- Html mate标签的常见功能
- JavaSE编码试题强化练习3
- Java可变参数方法
- Atlantis poj1151 线段树扫描线
- Mysql8- Public Key Retrieval is not allowed
- Gos: Armed Golang &#128170;
- MTCNN 人脸检测
- centos7卸载YUM后重装过程 -bash: yum: command not found / -bash: yum: 未找到命令
- linux查看 rsync 服务状态
- spring boot 加载指定xml