之前题目看错了。。

先用双倍字符串处理后效性
首先要确定一个结论:如果原串s中相距为d的ch1和ch2只有一对,那么如果第一个翻开ch1,第二个翻开ch2,就能确定k
现在要求的是当我们第一次翻开的是ch1时,第二次翻哪个位置成功的概率最高
设这个概率为p,ans=sigma(cnti/n * pi),i∈['a','z']
那么我们枚举d,对每种字符找到这个最大的d即可

.

#include<bits/stdc++.h>
using namespace std;
int n,mp[][][];
char s[<<]; int main(){
cin>>s;
n=strlen(s);
for(int i=;i<n;i++)
s[i+n]=s[i];
for(int i=;i<n;i++)
for(int j=i+;j<i+n;j++)
mp[s[i]-'a'][s[j]-'a'][j-i+]++;
int sum=;
for(int i=;i<;i++){//对于每个字符找d
int Max=;
for(int d=;d<=n;d++){
int tmp=;
for(int j=;j<;j++)
if(mp[i][j][d]==)tmp++;
Max=max(Max,tmp);
}
sum+=Max;
}
printf("%.10lf\n",1.0*sum/n);
}

最新文章

  1. 关于phpmyadmin的小笔记
  2. linux命令学习使用记录
  3. DB2 重新设定表自增字段的当前值
  4. H - The Falling Leaves
  5. 【WCF--初入江湖】04 WCF通信模式
  6. 在C#中实现Python的分片技术
  7. Java Development Kit (JDK) 发展历程 及新特性
  8. 关于 rem 作为单位设置大小
  9. dp 斯特林数 HDU2512一卡通大冒险
  10. RHCE备考倒计时
  11. Jax-ws 开发webService ,并使用spring注入service类
  12. Ubuntu16.04 安装flash player
  13. java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
  14. 2.4 PCI总线的配置
  15. Android中GridView的一些特殊属性
  16. [POJ1964]City Game (悬线法)
  17. 【sqli-labs】Less5~Less6
  18. 04-TypeScript中的方法新功能(上)
  19. SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?
  20. as_matrix、保存训练模型

热门文章

  1. 笔记52 Mybatis快速入门(三)
  2. Jenkins忘记 admin 密码
  3. shell 例子
  4. 24. Java SE 、 Java EE 、JavaME 、 JavaWeb 直接的区别和联系
  5. prufer序列的性质及相关结论
  6. leetcood学习笔记-58-最后一个单词的长度
  7. R语言 运算符
  8. c++-文件分离
  9. (干货)java中如何根据一个时间获取属于本年那一周,本周的开始时间以及最后一天时间。并且设置起始时间为周6.结束时间为周5
  10. Web 开发规范 — WSGI