CodeForces 1065E. Side Transmutations 计数

昨天不该早点走的....

 

首先操作限制实际上是一个回文限制

每个$b[i] - b[i - 1]$互不干扰,不妨设这个串关于中心点对称的这么一对区间的串分别为$(S_1, S_2)$

题目的限制相当与存在$(T_1, T_2)$使得$T_1 = inv(S_2) \;and\;T_2 = inv(S_1)$

考虑一对串$(S_1, S_2)$被计数多少次,我们分类讨论一下

 

一个长为$L$的子串的方案数为$S^L$,即为$f(L)$

一个长为$L$,字符集为$S$的区间,形成回文串的方案数为$S^{\frac{L +1}{2}}$,记为$g(L)$

如果$(S_1, S_2)$中有两个回文串,会被算重0次,否则都会被算重1次

那么方案数为$(f(L)^2 - g(L)^2) / 2 + g(L) * g(L)$

化简一下,$f(L) * (f(L) + 1) / 2$

 

复杂度$O(n \log n)$

#include <vector>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
namespace remoon {#define re register#define de double#define le long double#define ri register int#define ll long long#define sh short#define pii pair<int, int>#define mp make_pair#define pb push_back#define tpr template <typename ra>#define rep(iu, st, ed) for(ri iu = st; iu <= ed; iu ++)#define drep(iu, ed, st) for(ri iu = ed; iu >= st; iu --)    extern inline char gc() {static char RR[23456], *S = RR + 23333, *T = RR + 23333;if(S == T) fread(RR, 1, 23333, stdin), S = RR;return *S ++;}inline int read() {int p = 0, w = 1; char c = gc();while(c > '9' || c < '0') { if(c == '-') w = -1; c = gc(); }while(c >= '0' && c <= '9') p = p * 10 + c - '0', c = gc();return p * w;}int wr[50], rw;#define pc(iw) putchar(iw)tpr inline void write(ra o, char c = '\n') {if(!o) pc('0');if(o < 0) o = -o, pc('-');while(o) wr[++ rw] = o % 10, o /= 10;while(rw) pc(wr[rw --] + '0');pc(c);}tpr inline void cmin(ra &a, ra b) { if(a > b) a = b; }tpr inline void cmax(ra &a, ra b) { if(a < b) a = b; } tpr inline bool ckmin(ra &a, ra b) { return (a > b) ? a = b, 1 : 0; }tpr inline bool ckmax(ra &a, ra b) { return (a < b) ? a = b, 1 : 0; }
}
using namespace std;
using namespace remoon;#define mod 998244353
#define iv2 499122177
#define sid 200050inline int fp(int a, int k) {int ret = 1;for( ; k; k >>= 1, a = 1ll * a * a % mod)if(k & 1) ret = 1ll * ret * a % mod;return ret;
}int n, m, S;
int b[sid];int main() {n = read(); m = read(); S = read();rep(i, 1, m) b[i] = read();    int ans = fp(S, n - (b[m] * 2));rep(i, 1, m) {int L = b[i] - b[i - 1];ans = 1ll * ans * fp(S, L)  % mod * (fp(S, L) + 1)  % mod * iv2 % mod;}write(ans);return 0;
}

 

转载于:https://www.cnblogs.com/reverymoon/p/9779929.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORA-00911: invalid character

sql语句中最后多了分号的原因&#xff0c;去掉分号就可以。

Luogu1979 NOIP2013D2T3 华容道 搜索、最短路

题目传送门 题意&#xff1a;给出一个$N \times M$的棋盘&#xff0c;棋盘上有一些块可以移动&#xff0c;有一些块无法移动。$Q$次询问&#xff0c;每一次询问给出三个块$a,b,c$&#xff0c;将$a$块变为空格&#xff0c;空格旁边可移动的块可以与空格交换位置。问每一次询问中…

user_tab_columns是什么

user_tab_columns是保存了当前用户的表、视图和Clusters中的列等信息&#xff0c;用于oracle获取表结构。 user_tab_cols不同的是比user_tab_columns多几列&#xff1a; HIDDEN_COLUMN VARCHAR2(3) VIRTUAL_COLUMN VARCHAR2(3) SEGMENT_COLUMN_ID NUMBER INTERNAL_COLUMN_…

英语初级学习系列-00-Name-介绍自己

1. 询问名字 常用句子 1. Hi, may I have your name, please? 2. Could you please tell me your name? 3. Will it be convenient for you if I have your name? 4. your name? 5. What is your name? 使用场景 你想知道别人的叫啥的时候你想和别人搭话&#xff08;搭讪&…

Oracle 怎么删除重复数据

1、根据rowid来查询重复数据 select * from table1 a where rowid !(select max(rowid) from table1 b where a.name1b.name1 ) 2、根据rowid来删除重复数据 delete from table1 a where rowid !(select max(rowid) from table1 b where a.name1b.name1 ) 3、根据group …

如何给代码自动添加注释?

丰富的注释和良好的代码规范&#xff0c;对于代码的阅读性和可维护性起着至关重要的作用。几乎每个公司对这的要求还是比较严格的&#xff0c;往往会形成自己的一套编码规范。但是再实施过程中&#xff0c;如果全靠手动完成&#xff0c;不仅效率低下&#xff0c;还难以保证真正…

一些jquery的使用方法

jquery给input赋值val(val) val(val)是jquery函数&#xff0c;最容易混淆的是获取input的函数是val()&#xff1b; 区别非常小&#xff0c;一个是带参数&#xff0c;一个是不带参数&#xff1b; <input name"user" class"txtshort" id"user&q…

判断select下拉框是否有选,并给下拉框赋值

使用select下拉框时&#xff0c;错误写法 var sex $(#sex).val(); alert(sex); //弹出的是&#xff1a;nullif(sex""){alert("请选择性别");return;} 应该写成&#xff1a; if(sexnull){alert("请选择性别");return;} 给下拉框赋值&#xff…

js第一天

1.JS介绍 全称叫JavaScript&#xff0c;但不是Java&#xff0c;js是一门前台语言&#xff0c;而Java是后台语言。 js的作者是布兰登.艾奇 前台语言&#xff1a;运行在客户端的 后台语言&#xff1a;跟数据库有关 2.JS可以干什么&#xff1f; 页面特效&#xff0c;开发页面游戏&…

Ubuntu 如何为 XMind 添加快速启动方式和图标

目录 Ubuntu 如何为 XMind 添加快速启动方式和图标Ubuntu 如何为 XMind 添加快速启动方式和图标 按照教程Ubuntu16.04LTS安装XMind8并创建运行图标进行Xmind安装 下载安装包打开~/Download文件夹&#xff0c;解压.zip压缩包&#xff0c;之后在解压的文件夹中打开终端&#xff0…

如何点击打印,直接打印出来,不弹打印设置选项

现在有两种解决方案,亲测有效。 (1).第一种是需要安装插件,网上下载ScriptX.cab文件 下载成功后将文件放在项目某个目录下,然后在页面body中写上: (记得codebase属性为ScriptX.cab文件的放置路径,是绝对路径) 把window.print()改成:factory.printing.Print(false)即可; 远…

[CQOI2014]通配符匹配

https://www.zybuluo.com/ysner/note/1311407 题面 几乎所有操作系统的命令行界面\((CLI)\)中都支持文件名的通配符匹配以方便用户。 最常见的通配符有两个&#xff0c;一个是星号&#xff0c;可以匹配\(0\)个及以上的任意字符&#xff1b; 另一个是问号&#xff0c;可以匹配恰…

jsp常用的onchange事件

定义和用法&#xff1a; onchange 事件会在域的内容改变时发生。 onchange 事件也可用于单选框与复选框改变后触发的事件。例如<input>、<select>、<textarea> <input type"text" id"name" onchange"myFunction()">&…

POJ Area of Simple Polygons 扫描线

这个题lba等神犇说可以不用离散化&#xff0c;但是我就是要用。 题干&#xff1a; DescriptionThere are N, 1 < N < 1,000 rectangles in the 2-D xy-plane. The four sides of a rectangle are horizontal or vertical line segments. Rectangles are defined by their…

window.print()打印时,如何自定义页眉/页脚、页边距

自定义页眉/页脚、页边距&#xff0c;要用到ActiveX控件&#xff08;在ie的安全设置的启用&#xff09;&#xff0c;会修改注册表中ie的设置&#xff0c;代码如下。 try{ var hkey_root,hkey_path,hkey_key; hkey_root"HKEY_CURRENT_USER"; hkey_path"\\Soft…

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

这个问题是&#xff0c;类型转换出错&#xff0c;为什么呢&#xff1f; 因为BigDecimal不能强制转换成 String类型&#xff0c;要用toString()转换。

String转换为int类型

在java中使用 Integer.parseInt 在js中使用 parseInt

Luogu P4205 [NOI2005]智慧珠游戏

P4205 [NOI2005]智慧珠游戏 题意 题目描述 智慧珠游戏拼盘由一个三角形盘件和\(12\)个形态各异的零件组成。拼盘的盘 件如图\(1\)所示 对于由珠子构成的零件&#xff0c;可以放到盘件的任一位置&#xff0c;条件是能有地方放&#xff0c;且尺寸合适&#xff0c;所有的零件都允许…

js中给多个class属性的标签赋值

根据ID给标签赋value值&#xff0c; document.getElementById("id").value"张三"; 当有多个class属性时&#xff0c; for(var i0;i<10;i){document.getElementsByClassName("name")[i].value"李四"; }

Cannot set property 'value' of undefined

一般情况都是js报错引起的&#xff0c;根据实际总结到&#xff1a; 1、js页面初始化时&#xff0c;执行$(document).ready(function(){})方法&#xff0c; 当你要加载的页面内容很多时&#xff0c;你的页面还未加载完&#xff0c;执行初始化函数报错。 2、在初始化函数中&…