这题一上来还以为是容斥+矩乘dp、、然而它要求的是最大值的期望,所以没有什么思路

然后原来可以ac自动机上转移、

其实n这么小就完全可以考虑拆到ac自动机里,然后就变成了图上期望问题

所以题目就变成了求从s点出发,走len步的期望权值和

所以只有作为词结束的点到答案点的权值为1,其他皆为0

所以我们就要算出从s走len步到达答案点的期望权值和

可以根据边构造矩阵,  自乘来表示走一次(类似矩乘floyd

注意:起始点是0不是1

码:

#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
#include<cstring>
int ch[99][28],tot,i,t,j,sp[99],n,len;
char str[99];
bool ci[99];
queue<int>q;
void jia(char *a)
{int o=0,i=0,l=strlen(a);while(i<l){//cout<<o;if(ch[o][a[i]-'a']==0)ch[o][a[i]-'a']=++tot;o=ch[o][a[i]-'a'];i++;}ci[o]=1;//cout<<tot;
}
void shipei()
{int i;for(i=0;i<t;i++)if(ch[0][i]!=0)q.push(ch[0][i]);while(!q.empty()){int st=q.front(),o=sp[st];q.pop();for(j=0;j<t;j++){if(ch[st][j]){q.push(ch[st][j]);sp[ch[st][j]]=ch[sp[st]][j];ci[ch[st][j]]|=ci[ch[sp[st]][j]];}else ch[st][j]=ch[sp[st]][j];  }    }
}
struct jz
{
long double a[90][90];
}m;
jz cheng(jz a,jz b)
{int i,j,k;jz o;for(i=0;i<=tot;i++)for(j=0;j<=tot;j++)o.a[i][j]=0;for(i=0;i<=tot;i++)for(j=0;j<=tot;j++)for(k=0;k<=tot;k++)o.a[i][j]+=a.a[i][k]*b.a[k][j];
return o;
}
jz ksm(jz a,int b)
{int i,j,k;b--;jz ans=a;       while(b){if(b%2)ans=cheng(ans,a);b/=2;a=cheng(a,a);}return ans;
}
int main()
{scanf("%d%d%d",&n,&len,&t);for(i=1;i<=n;i++){
scanf("%s",str);
jia(str);       }shipei();++tot;long double v=1.0/t;memset(m.a,0,sizeof(m.a));for(i=0;i<tot;i++){for(j=0;j<t;j++)    {if(ci[ch[i][j]]){m.a[i][tot]+=v;m.a[i][0]+=v;}else m.a[i][ch[i][j]]+=v;}}m.a[tot][tot]=1;printf("%.10lf",double(ksm(m,len).a[0][tot]));
}

2017.9.19 禁忌 失败总结相关推荐

  1. 《麻省理工科技评论》:2018年18大科技趋势,2017年7大失败技术

    来源:科技周 摘要:2018 年伊始,许多科技大势仍在继续,正如比尔·盖茨所说,"大多数人高估了某种技术的短期价值,低估了其长期价值."同样,大多数的年度预测会高估了一年内一些事件 ...

  2. 2017无盘服务器,(2017.11.19)云更新2017正式版2017.6.15.6596无盘xp-win7x32-x64-win10x64公包...

    重要更新: 一.重点功能更新 1.三层更新核心组件升级,降低80%的游戏更新量 : 2.新增显卡PNP功能 (新环境部署更简单): 3.同时支持中英双语言环境 (更高Bigger): 4.优化万兆环境 ...

  3. Xamarin 2017.9.19更新

     Xamarin 2017.9.19更新 本次更新是添加Xamarin.iOS对iOS 11和Xcode 9的支持.Visual Studio 2017升级到15.3.5获得更新功能.Visual S ...

  4. 2017.1.19切题总结

    上午切了P1920 这道题是最优骗分+贪心 原题: 有N (1 <= N <= 1,000,000)个 true 或者false的问题. 其中答案是true的问题的个数有K种可能:t_1, ...

  5. 找不到mfc140u.dll或者Microsoft Visual C++ 2017 Redistributable一直安装失败解决

    找不到mfc140u.dll 安装后提示这个问题,我将xshell卸载重新安装后发现安装过程中提示Microsoft Visual C++ 2017 Redistributable一直安装失败,所以问 ...

  6. 2017第19届中西部光电与智能制造博览会-重庆光博会

    2017第19届中西部光电与智能制造博览会-重庆光博会 时间:2017年8月3-5日 地点:重庆国际会议展览会中心 同期举办: ◆2017激光加工.智能制造及工业大数据论坛 ◆2017中国(重庆)LE ...

  7. 2017第19届济南国际数控机床展览会会刊(参展商名录)

    2017第19届济南国际数控机床展览会会刊(参展商名录) 展会名称: 2017第19届济南国际数控机床展览会 所属展馆: 济南国际会展中心 开展时间: 2017-09-19 至 09-21 参展商名录 ...

  8. 2017.9.19 L语言 失败总结

    写了一个下午+半个晚上好不容易调出来然后只有50分之后改了又错.错了又改之后发现自己写的是错的.. 这个题出的太刁钻了,万万没想到这个题是卡2e7的时限题. 所以可以暴力找每个点往后的匹配情况.... ...

  9. 2017.3.19 约数个数和 失败总结

    这个题一眼上去应该不是很难,但除了求约数个数有个分解质因数的技巧之外就不会什么了:: 本来想着预处理50000以内的约数个数和之后求个前缀和直接乘...可见多么蠢..搞了2h后弃疗了 结果题解是 要算 ...

最新文章

  1. easyui动态增加datagrid列_多工作表动态合并,其实很简单
  2. RHEL6系列更换epel源
  3. Springboot 传递 List「Long」 IdList
  4. 设置调试PHP,debug php输出所有错误信息
  5. Java自动生成增量补丁自动部署_java-Hibernate正在为表生成自动增量交替ID
  6. linux 如何取执行一个脚本5000次,【shell笔记脚本】嵌套、控制循环以及处理循环输出...
  7. CentOS 6.6 nginx PHP 配置
  8. android手机刷机后驱动更新失败,刷机驱动安装失败的可以进来试试!
  9. Arduino STM32 JLink下载教程
  10. 用STM32F407开发板实现4G模块L610发送短信功能
  11. LigaAI X 猴子无限 | AIGC 火了,专业设计者的福音来了!
  12. 大学开学初计算机水平测试,请查收这份大学生开学攻略——
  13. 【原理+实战+视频+源码】抖音,快手大热背后——Android 贴心的音视频学习指南来咯!
  14. 一文助您轻松上手 Kyligence Zen,轻松变身数据达人
  15. C语言输出 1到20 的阶乘之和
  16. H5自适应屏幕分辨率大小
  17. MySQL数据库--01--一头扎进大沙漠-数据库概述
  18. 同一 等价和自然数的生成:皮亚诺公理3解读——皮亚诺读后之五
  19. Python文件打包封装详细教程
  20. 组态王与西门子plc通讯步骤

热门文章

  1. ajax中tooltip,工具提示插件——tooltip
  2. Kotlin学习笔记28 Flow part2 Flow引入 Flow的执行 取消 构建器 中间操作符 终端操作符 默认执行顺序 上下文相关
  3. 用的最多的正则表达式
  4. 数字图像处理 空间域平滑 MATLAB实验
  5. python项目总结与展望_我做知识星球一周年总结与未来展望
  6. python椭圆识别_Python+pillow计算椭圆图形几何中心
  7. python程序设计搜题软件下载_智慧职教云课堂APPPython程序设计答案搜题公众号
  8. signature=14a3e4f784cf9004647ea52bac22e550,维族老年慢性阻塞性肺疾病患者合并肺动脉高压的临床研究...
  9. vlookup使用步骤_使用vlookup出错,看看原因多为这几个!快来看看!
  10. python声音捕获_在Python中实现实时信号处理如何连续捕获音频?