hdu5635 BestCoder Round #74 (div.2)
2016-03-06 12:39
267 查看
LCP Array
Accepts: 131Submissions: 1352
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 131072/131072 K (Java/Others)
问题描述
Peter有一个字符串s=s_{1}s_{2}...s_{n}s=s1s2...sn, 令\text{suff}_i =s_{i}s_{i+1}...s_{n}suffi=sisi+1...sn是ss第ii字符开头的后缀. Peter知道任意两个相邻的后缀的最长公共前缀a_i = \text{lcp}(\text{suff}_i, \text{suff}_{i+1}) \quad (1 \le i < nai=lcp(suffi,suffi+1)(1≤i<n). 现在给你数组aa, Peter有多少个仅包含小写字母的字符串满足这个数组. 答案也许会很大, 你只要输出对10^9 + 7109+7取模的结果即可.
输入描述
输入包含多组数据. 第一行有一个整数TT, 表示测试数据的组数. 对于每组数据: 第一行包含一个整数nn (2 \le n \le 10^5)2≤n≤105)表示字符串的长度. 第二行包含n - 1n−1个整数: a_1,a_2,...,a_{n-1}a1,a2,...,an−1 (0 \le a_i \le n)(0≤ai≤n). 所有数据中nn的和不超过10^6106.
输出描述
对于每组数据, 输出答案对10^9+7109+7取模的结果.
输入样例
3 3 0 0 4 3 2 1 3 1 2
输出样例
16250 26 0
/* hdu5635 BestCoder Round #74 (div.2) 给你n-1个数,每个数表示i,i+1开头的最长公共前缀,让你求出在只有 小写字母的情况下,最多有多少种可能 感觉自己最近问题很严重啊, 这题思路很快就看出来了,但是在细节上总是有问题 总共只有两种情况,这些数全部为0 或者 为公差为1的递减,可以 4 3 2 1 or 3 2 1 0 or 2 1 0 0;但是我在最后一位没有判断是否小于等于1,于是像 5 4 3 2便出现了问题- - */ #include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <map> #include <algorithm> using namespace std; typedef long long ll; #define LL(x) (x<<1) #define RR(x) (x<<1|1) #define MID(a,b) (a+((b-a)>>1)) const int maxn=125010; int a[maxn]; const int MOD = 1e9 + 7; int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i =1; i < n; i++) scanf("%d",&a[i]); int flag = 0; int num = 0; for(int i = 1; i <= n-1; i++) { if(i == n-1) { if(a[i] > 1) flag = 1; break; } if(a[i] != a[i+1]+1 && a[i] != 0) flag = 1; } if(flag) printf("0\n"); else { ll ans = 26; int num = 0; for(int i = 1; i < n; i++) { if(a[i] == 0) { ans = (ll)ans*25%MOD; } } printf("%I64d\n",ans%MOD); } } return 0; }
相关文章推荐
- ajax封装
- 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题
- 数据库操作精要指南
- JQuery简易轮播图
- IntelliJ IDEA 设置代码提示或自动补全的快捷键
- 第0周学习总结
- 默然说话20160306
- 工厂方法模式
- SSH实现带进度条的Ajax文件上传
- Spring之事务
- 瀑布流
- hdu 5636 Shortest Path【floyd+思维】
- Spring自动扫描装配bean
- sql server设置隐式事务与显式事务IMPLICIT_TRANSACTIONS
- git 经常使用的命令
- 学习进度条——第一周
- 安卓基础
- 设置GVIM的默认初试界面大小、启动位置
- Spring AOP之XML配置
- Mysql无限递归树(由子找父数据父名称)