洛谷P4925 [1007]Scarlet的字符串不可能这么可爱(计数)
2024-09-27 11:47:32
题意
Sol
只要知道“回文连续子串”就能做了吧。。
想要满足这个条件,肯定是不能出现\(aa\)或\(aba\)这种情况
如果没有\(S\)的限制,答案为\(K * (K - 1) * \prod_{i = 3}^n (k - 2)\)
如果有\(S\)的限制就除一个\(K\)
然而考场上没注意到会乘爆long long于是挂乘暴力分。。。。
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-')f =- 1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int K, L, mod, S, W;
int mul(int a, int b) {
return a * b % mod;
}
int fastpow(int a, int p) {
int base = 1; a %= mod;
while(p) {
if(p & 1) base = 1ll * base * a % mod;
a = 1ll * a * a % mod; p >>= 1;
}
return base;
}
main() {
K = read(); L = read(); mod = read();
S = read(); W = read();
K %= mod;
if(S == 0) {
if(L == 1) cout << K;
else if(L == 2) cout << K * (K - 1) % mod;
else cout << 1ll * K * (K - 1) % mod * fastpow(K - 2, L - 2) % mod;
} else {
int base = 1;
if(L == 1) cout << 1;
else if(L == 2) cout << (K - 1) % mod;
else {
base = mul(base, K - 1);
base = base * fastpow(K - 2, L - 2) % mod;
cout << base;
}
}
}
最新文章
- UWP Composition API - GroupListView(二)
- SQL服务器在执行这条语句时会先进行运算然后执行
- Sql Server FOR XML PATH
- HTML5学堂,感谢您一年的陪伴(上)
- mysql备份文件注释乱码处理工具
- Socket WSAAsyncSelect模型
- 一篇文章让你彻底搞清楚Python中self的含义
- myeclipse &#39;no default proposals&#39; when use &#39;alt + /&#39;.
- 覆盖与重载与隐藏——SAP电面(3)
- 多少遍ner让他加56看6
- WebApi及Fiddler工具
- Python学习笔记——基础篇【第五周】——random &; time &; datetime模块
- Spring对jdbc支持
- WebGL 高级技术
- 并行类加载与OSGI类加载
- centos 安装python3与Python2并存,并解决";smtplib"; object has no attribute &#39;SMTP_SSL&#39;的错误
- include和require的区别
- JavaScript自定义鼠标右键菜单
- eclipse中使用Maven新建Servlet2.5的Web项目
- js图片加载效果(延迟加载+瀑布流加载)