概率+后效性处理——cf930B好题
2024-10-07 21:39:49
之前题目看错了。。
先用双倍字符串处理后效性
首先要确定一个结论:如果原串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);
}
最新文章
- 关于phpmyadmin的小笔记
- linux命令学习使用记录
- DB2 重新设定表自增字段的当前值
- H - The Falling Leaves
- 【WCF--初入江湖】04 WCF通信模式
- 在C#中实现Python的分片技术
- Java Development Kit (JDK) 发展历程 及新特性
- 关于 rem 作为单位设置大小
- dp 斯特林数 HDU2512一卡通大冒险
- RHCE备考倒计时
- Jax-ws 开发webService ,并使用spring注入service类
- Ubuntu16.04 安装flash player
- java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
- 2.4 PCI总线的配置
- Android中GridView的一些特殊属性
- [POJ1964]City Game (悬线法)
- 【sqli-labs】Less5~Less6
- 04-TypeScript中的方法新功能(上)
- SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?
- as_matrix、保存训练模型