CF 1065 E. Side Transmutations
E. Side Transmutations
http://codeforces.com/contest/1065/problem/E
题意:
长度为n的字符串,字符集为A,问多少不同的字符串。两个字符串相同:
- 在给定的数组b中,找到一个数b[i],设k=b[i]
- 将1~k,与n-k+1~n 的字符串翻转,然后交换位置。新形成的字符串与原来的字符串相等。
分析:
考虑只有一个b[i]的影响,那么对于一个字符串,分成了三段,前面k个,后面k个,中间的。中间的部分就是$A^{n-k-k}$,再看两边形成多少种字符串,使得这些都是不同的。
左边k个和右边k个的所有的字符串,两两组合,加上中间的部分,构成一个字符串。然后这个字符串与操作后的字符串是相等的,于是它们应该只计算一次,所以除以2就行。但是有一些字符串操作后,与原来一样,这些也不会形成等价的字符串,所以不需除以2,算一次就行了。
左边k个的总方案数$A^{k}$,两边两两组合$A^{k+k}$。操作后与原来一样的字符串$A^{k}$,表示左边k个随便选,右边的k个为左边的倒置。那么第一部分就是$\frac{A^{k+k}-A^{k}}{2}$,再加上第二部分$A^{k}$,合并后$\frac{A^{k} \times (A^{k} + 1)}{2}$。
然后考虑增加一个b的影响,那么中间的部分,不可以在按上一个的选了,为$A^{n-k-k}$,所以先不考虑中间的,只考虑两边的。因为b[i]下一个回事两边增加b[i+1]-b[i]个字符。那么这b[i]在按照上面的方式组合,就会有形成一些新的字符串。那么乘上这些即可,最后再乘上中间的部分。就是$A^{n-b[m]-b[m]}$
代码:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<iostream>
#include<cctype>
#include<set>
#include<vector>
#include<queue>
#include<map>
#define fi(s) freopen(s,"r",stdin);
#define fo(s) freopen(s,"w",stdout);
using namespace std;
typedef long long LL; inline int read() {
int x=,f=;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-;
for(;isdigit(ch);ch=getchar())x=x*+ch-'';return x*f;
} const int N = ;
const LL mod = ; LL ksm(LL a, LL b) {
LL res = ;
while (b) {
if (b & ) res = res * a % mod;
a = a * a % mod;
b >>= ;
}
return res;
} LL b[N]; int main() {
int n = read(), m = read();
LL A = read();
for (int i=; i<=m; ++i) b[i] = read();
LL ans = , inv2 = ksm(, mod - );
for (int i=; i<=m; ++i) {
LL L = b[i] - b[i - ];
LL tmp = ksm(A, L);
ans = ans * tmp % mod * (tmp + ) % mod;
ans = ans * inv2 % mod;
}
ans = ans * ksm(A, n - b[m] - b[m]) % mod;
cout << ans;
return ;
}
CF 1065 E. Side Transmutations的更多相关文章
- ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- cf Round 613
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...
- 【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
http://www.lydsy.com/JudgeOnline/problem.php?id=1065 https://vijos.org/p/1826 好难的题啊TWT ∈我这辈子也想不出来系列~ ...
- ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...
- bzoj 1065: [NOI2008] 奥运物流
1065: [NOI2008] 奥运物流 Description 2008北京奥运会即将开幕,举国上下都在为这一盛事做好准备.为了高效率.成功地举办奥运会,对物流系统 进行规划是必不可少的.物流系统由 ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- CF memsql Start[c]UP 2.0 A
CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...
- CF memsql Start[c]UP 2.0 B
CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...
随机推荐
- ClassNotFoundException: INameEnvironment
springboot兼容jsp启动是报错,ClassNotFoundException: INameEnvironment 降低springboot版本即可,原版本1.5.10,降为1.5.2可使用
- 【模板】Tarjan算法与有向图的强连通性
概念 流图 给定一个有向图G= (V,E),若存在r∈V满足,满足从r出发能够到达V中所有的点,则称G是一个流图,记为(G,r),其中r是流图的源点. 流图的搜索树 在一个流图(G,r)上从r出发,进 ...
- 【LGP5108】仰望半月的夜空
题目 我还会写\(SA\)和 \(ST\)表真是令人感动 发现这是一个思博题 我们开一个指针,标记一下当前合法的字典序最小的后缀排名在哪里,刚开始自然是\(1\) 我们发现这个后缀不能为我们提供\(i ...
- 【vue.js】入门
慕课网视频学习笔记:http://www.imooc.com/learn/694 1.将html.js.css写到一个后缀名.vue的文件中,区分这三种类型是通过<template>.&l ...
- 监听器中spring注入相关的问题
问题描述: 需求是要求在项目启动自动触发一个service中的线程的操作,使用监听器来实现,但是自定义监听器中spring注解service失败,通过WebApplicationContextUtil ...
- OPENGL绘制文字
OPENGL没有提供直接绘制文字的功能,需要借助于操作系统. 用OPENGL绘制文字比较常见的方法是利用显示列表.创建一系列显示列表,每个字符对应一个列表编号.例如,'A'对应列表编号1000+'A' ...
- 404 Note Found 队-Alpha 事后诸葛亮
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结: 本小组和其他组的评分 分工和贡献分 全组讨论的照片 问题 第一组提问回答:爸爸饿了队 第二组提问回答:拖 ...
- Notes 20180505 : 计算机的基础知识
总是想要去深入了解一下计算机,可真正去了解的时候才发现那并非一日之功,关于计算机的学习,并未放弃,但是化知识为笔记尚需时日,今日我们先简单了解一下计算机,然后开始Java语言的学习. 1 计算机的基础 ...
- 项目中cxf和weblogic整合时报错的问题
GJYW项目使用的weblogic版本是10.3.6,cxf使用的版本是3.1.4 在将项目部署到weblogic服务器上时就会报错,通过下面的方式可以解决weblogic和cxf框架在一起报错的问题 ...
- iOS:UITableView相关(18-10-20更)
UITableView用得较多,遇到的情况也较多,单独记录一篇. 一.零散的技巧 二.取cell 三.cell高度 四.导航栏.TableView常见问题相关 五.自定义左滑删除按钮图片 六.仅做了解 ...