题目链接

题意

限定字符串长度为$n$,字符集规模为$A$,以及$m$个数字$b$,对于任意数字$bi$满足长度为$bi$的前缀和后缀先反转再交换位置后形成的新串与原串视作相等,问存在多少不同串。

思路

设$c[i]=b[i]-b[i-1]$,将字符串看成由长度$c[1],c[2],c[3]...n-2*b[m]...c[3],c[2],c[1]$串构成,那么只需考虑$c$中对应串的方案数和中间单独的方案数,相乘即答案。

假设考虑$k$位,形成回文的对应串有$A^{k}$,不形成的有$\frac{A^{2k}-A^{k}}{2}$,相加后得$\frac{A^{k}*(A^{k}+1)}{2}$,中间即$A^{n-2*b[m]}$。

代码

#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
const long long mod = 998244353;
const int maxn = 2e5+5;
using namespace std;
typedef long long LL;LL n,m,A;
LL b[maxn];LL qpow(LL a,LL b,LL p){LL res=1;while(b){if(b&1)res=(res*a)%p;a=a*a%p,b/=2;}return res;
}int main(){scanf("%I64d%I64d%I64d",&n,&m,&A);for(int i=1;i<=m;i++)scanf("%I64d",&b[i]);LL ans=1,inv=qpow(2,mod-2,mod);for(int i=1;i<=m;i++){LL tmp=qpow(A,b[i]-b[i-1],mod);ans=ans*tmp%mod*(1+tmp)%mod*inv%mod;}ans*=qpow(A,n-2*b[m],mod);printf("%I64d\n",ans%mod);return 0;
}

转载于:https://www.cnblogs.com/DuskOB/p/10034474.html

Codeforces 1065E(计数)相关推荐

  1. CodeForces 1065E. Side Transmutations 计数

    昨天不该早点走的.... 首先操作限制实际上是一个回文限制 每个$b[i] - b[i - 1]$互不干扰,不妨设这个串关于中心点对称的这么一对区间的串分别为$(S_1, S_2)$ 题目的限制相当与 ...

  2. Bug in Code CodeForces - 420C (计数,图论)

    大意: 给定$n$结点无向图, 共n条边, 有重边无自环, 求有多少点对(u,v), 满足经过u和v的边数>=p 可以用双指针先求出所有$deg_u+deg_v \ge p$的点对, 但这样会多 ...

  3. CodeForces - 1486F Pairs of Paths(树上计数+容斥)

    题目链接:点击查看 题目大意:给出一棵 nnn 个点的树,再给出 mmm 条路径,现在问有多少个路径对 (x,y)(x,y)(x,y),满足第 xxx 条路径和第 yyy 条路径有且仅有一个交点 题目 ...

  4. CodeForces 1616H Keep XOR Low {a^b≤x} / CodeForces gym102331 Bitwise Xor {a^b≥x}(trie树 + 计数)

    文章目录 CodeForces 1616H Keep XOR Low problem solution code CodeForces gym102331 Bitwise Xor problem so ...

  5. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)

    题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...

  6. 组合计数 ---- Codeforces 737C Div2 C. Moamen and XOR [多阶段决策计数dp]

    题目链接 题目大意: 有nnn个数.每次数范围是[0,2k]∣k∈[0,3e5][0,2^k]|k\in[0,3e5][0,2k]∣k∈[0,3e5] 问你有多少种情况这nnn个数的与大于等于异或 首 ...

  7. codeforces数学1700[CodeForces 1336B[分类讨论+二分]CodeForces - 1301C[组合计数的减法原理]]

    CodeForces 1336B Xenia and Colorful Gems 题目大意:给你nrn_rnr​个xix_ixi​,ngn_gng​个yiy_iyi​,nbn_bnb​个ziz_izi ...

  8. codeforces数学1600day4[贪心数学公式推导CodeForces - 1151D ,思维CodeForces - 1085C,数论同余+组合计数 CodeForces - 1056B]

    A - Stas and the Queue at the Buffet CodeForces - 1151D 题目大意:就是给你n个人在排队,每个人都有一个ai值和bi值,每个人的不满意度就是f(i ...

  9. Codeforces 1336E Chiori and Doll Picking (子集和变换、线性基、阈值算法、状压 DP、组合计数)...

    题目链接 https://codeforces.com/contest/1336/problem/E 题解 假设线性基大小是 \(L\),其异或值域记作 \(S\),则对于异或值域内每个数,显然有 \ ...

最新文章

  1. 图像的zoomfft变换
  2. oracle删除后电脑卡,彻底删除oracle服务 -电脑资料
  3. 2021HDU多校10 - 7084 Pty loves string(KMPnext树+主席树+dfs序)
  4. mongodb 导出一条数据导出_使用MongoDB命令工具导出、导入数据
  5. 如何实现移动端轮播图的左滑右滑效果
  6. junit-4.9.jar_JUnit 4.9(测试版3)中的规则
  7. 构建自己的服务器有什么好处呢?
  8. 【观点】微博的弊端和它的真正意义
  9. 数据挖掘算法之离散化和二元化
  10. oracle异步sql,Linux上Oracle是否使用异步io的诊断
  11. ntko php,NTKO 附件管理控件_
  12. 国产操作系统产业深度解析
  13. 计算机ppt制作教案,教案幻灯片制作
  14. ios和安卓测试包发布网站http://fir.im的注册与常用功能
  15. 人生若只如初见服务器维护,「北京服务器」人生若只如初见
  16. Unity中摄像机跟随
  17. 第二章 pandas基础
  18. php bcd编码,什么是BCD码、8421码、余三码、格雷码
  19. Petalinux 使用外部ADI的内核源码编译记录-附oe_runmake解决办法
  20. 通信基础概念(三)相关与正交

热门文章

  1. 获取计算机主机mac地址的命令有,怎么获取计算机的MAC地址和IP地址?
  2. 查找mysql临时文件_SQL查询时生成的临时文件对数据库查询的影响
  3. controller属于哪一层_五种皮肤类型,那你属于哪一种,你知道吗?
  4. 电脑工具栏怎么调整到下面_PDF格式的合同怎么盖公章?这不是在为难我胖虎吗?...
  5. sql server 查看表、视图、触发器、存储过程等组成sql查询语句
  6. 运维小白死磕的专业术语,你真的理解透了吗?
  7. make INSTALL_MOD_PATH=path_dir modules_install
  8. 从短信类到短信平台之设计篇
  9. 迁移Exchange Server 2003
  10. Web前端Javascript笔记(8)Ajax前后端交互