BZOJ 1444: [Jsoi2009]有趣的游戏
1444: [Jsoi2009]有趣的游戏
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 1114 Solved: 386
[Submit][Status][Discuss]
Description
Input
注意 是0<=P
Output
Sample Input
Sample Output
HINT
30%的数据保证, n ≤ 2. 50%的数据保证, n ≤ 5. 100%的数据保证, n , l, m≤ 10.
Source
[Submit][Status][Discuss]
先做AC自动机,然后本来想gauss,但是听说做50次自乘就行,那岂不是贼简单。
1 #include<cstdio> 2 #include<cstring> 3 #define siz 125 4 char s[15]; double d[15],f[siz][siz],p[siz][siz]; 5 int n,m,l,q[siz],hd,tl,fl[siz],ch[siz][15],ed[siz],bp[15],tot=1; 6 main(){ 7 scanf("%d%d%d",&n,&l,&m); 8 for(int j=0,x,y;j<m;++j) 9 scanf("%d%d",&x,&y),d[j]=1.0*x/y; 10 for(int j=1,t;j<=n;++j){ 11 scanf("%s",s);t=1; 12 for(int i=0;i<l;++i){ 13 if(!ch[t][s[i]-'A']) 14 ch[t][s[i]-'A']=++tot; 15 t=ch[t][s[i]-'A']; 16 } 17 ed[t]=j,bp[j]=t; 18 } 19 for(int j=0;j<m;++j) 20 if(!ch[1][j])ch[1][j]=1; 21 else fl[q[tl++]=ch[1][j]]=1; 22 while(hd!=tl){ 23 int t=q[hd++]; 24 for(int j=0;j<m;++j) 25 if(!ch[t][j])ch[t][j]=ch[fl[t]][j]; 26 else fl[q[tl++]=ch[t][j]]=ch[fl[t]][j]; 27 } 28 for(int i=1;i<=tot;++i) 29 if(!ed[i])for(int j=0;j<m;++j) 30 f[i][ch[i][j]]+=d[j]; 31 else f[i][i]=1; 32 for(int t=1;t<=50;++t){ 33 memset(p,0,sizeof(p)); 34 for(int k=1;k<=tot;++k) 35 for(int i=1;i<=tot;++i) 36 for(int j=1;j<=tot;++j) 37 p[i][j]+=f[i][k]*f[k][j]; 38 memcpy(f,p,sizeof(f)); 39 } 40 for(int i=1;i<=n;++i)printf("%.2lf\n",f[1][bp[i]]); 41 } 42
@Author: YouSiki
转载于:https://www.cnblogs.com/yousiki/p/6476418.html
BZOJ 1444: [Jsoi2009]有趣的游戏相关推荐
- BZOJ 1444: [Jsoi2009]有趣的游戏 [AC自动机 高斯消元]
1444: [Jsoi2009]有趣的游戏 题意:每种字母出现概率\(p_i\),有一些长度len的字符串,求他们出现的概率 套路DP的话,\(f[i][j]\) i个字符走到节点j的概率,建出转移矩 ...
- BZOJ:4820: [Sdoi2017]硬币游戏BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)
1444: [Jsoi2009]有趣的游戏 4820: [Sdoi2017]硬币游戏 这两道题都是关于不断随机生成字符后求出现给定字符串的概率的问题. 第一题数据范围较小,将串建成AC自动机以后,以A ...
- BZOJ 1444 [JSOI2009]有趣的游戏 (AC自动机、概率与期望DP、矩阵乘法)
诶这题洛谷居然没有??? 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1444 题解: 我见到主要有两种做法. 一是矩阵乘法.设\(d ...
- BZOJ 1444 [JSOI2009]有趣的游戏 (Trie图/AC自动机+矩阵求逆)
题目大意:给你$N$个长度相等且互不相同的模式串,现在有一个字符串生成器会不断生成字符,其中每个字符出现的概率是$p_{i}/q_{i}$,当生成器生成的字符串包含了某个模式串,则拥有该模式串的玩家胜 ...
- 【bzoj1444】[Jsoi2009]有趣的游戏 AC自动机+矩阵乘法
题目描述 输入 注意 是0<=P 输出 样例输入 样例输出 题解 AC自动机+矩阵乘法 先将所有字符串放到AC自动机中,求出Trie图. 然后构建邻接矩阵:如果x不是某个字符串的末位置,则x连向 ...
- BZOJ1444: [Jsoi2009]有趣的游戏(Trie图,矩乘)
Description Input 注意 是0<=P, n , l, m≤ 10. Output Sample Input input 1 3 2 2 1 2 1 2 AB BA AA inpu ...
- [JSOI2009]有趣的游戏
题意 给你一个字符串集 构造一个串 S, S , S,每个位置你有 pi p i p_i的概率插入第 i i i个字符 问字符串集中每个字符串最先出现在构造的串中的概率 题解 涉及到字符串匹配首先想到 ...
- 计算机课堂有趣的游戏,有趣的课堂游戏作文9篇
有趣的课堂游戏作文9篇 在学习.工作.生活中,大家都写过作文,肯定对各类作文都很熟悉吧,借助作文人们可以实现文化交流的目的.相信写作文是一个让许多人都头痛的问题,以下是小编为大家收集的有趣的课堂游戏作 ...
- [bzoj 1452] [JSOI2009]Count
[bzoj 1452] [JSOI2009]Count Description Input Output Sample Input Sample Output 1 2 HINT 二维树状数组裸题,建立 ...
最新文章
- Python xml ElementTree 缩进(autoindent) 换行
- 重要!VALSE 2021确认参会及第二次【预注册】事宜的通知
- 你了解你的征信吗?这六个问题必须知道!
- 树莓派与node.js —— onoff、dht
- Qt + GDAL 写入矢量图层 shp
- 用ES6语法存储美国邮政编码的IndexedDB数据库
- tomcat发布网站的三种方式
- linux挂载NTFS格式硬盘
- 最速降线问题公式推导
- 2月面经:真可惜...拿了小米的offer,字节却惨挂在三面
- 微信小程序 — tag标签设置选中效果和未选样式
- 新路由3 H大老毛子,2月20日padavan固件
- 6.3.1 延迟操作接口
- 深度思考故事2:出租司机的经济学
- 玩转步进电机控制,自定义中文编程
- 在智能时代我们能做什么---读《智能时代》有感
- [wxWidgets]XRC和动态子菜单
- The provided URL is empty. Will try picking an instance via load-balancing.
- pycharm使用超级鹰无输出结果/尝试新的跨平台问题
- C语言代码覆盖率测试工具-OpenCppCoverage介绍