[JSOI2009] 有趣的游戏
1444: [Jsoi2009]有趣的游戏
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 1800 Solved: 645
[Submit][Status][Discuss]
Description

Input

注意 是0<=P, n , l, m≤ 10.
Output

Sample Input
3 2 2
1 2
1 2
AB
BA
AA
input 2
3 4 2
1 2
1 2
AABA
ABAA
BAAA
Sample Output
0.25
0.50
0.25
output 2
0.31
0.33
0.37
HINT

#include<bits/stdc++.h>
#define ll long long
using namespace std;
#define D double
const int maxn=205;
const D eps=1e-9;
int ch[maxn][27],n,m,l,cnt,X,Y;
int f[maxn],rot=0,dy[27];
D a[maxn][maxn],p[27];
char s[37];
bool islef[maxn]; inline int Id(char x){ return x-'A'+1;} inline void Ins(int x){
int now=rot;
for(int i=1,C;i<=l;i++){
C=Id(s[i]);
if(!ch[now][C]) ch[now][C]=++cnt;
now=ch[now][C];
} dy[x]=now,islef[now]=1;
} inline void getfail(){
queue<int> q;
for(int i=1;i<=m;i++) if(ch[rot][i]){ f[ch[rot][i]]=0,q.push(ch[rot][i]);}
int x,v; while(!q.empty()){
x=q.front(),q.pop();
for(int i=1;i<=m;i++){
v=ch[x][i];
if(!v){ ch[x][i]=ch[f[x]][i]; continue;} q.push(v);
f[v]=ch[f[x]][i];
}
}
} inline void build(){
a[0][cnt+1]=1;
for(int i=0;i<=cnt;i++){
a[i][i]=1;
if(!islef[i]) for(int j=1;j<=m;j++) a[ch[i][j]][i]-=p[j];
} /*
for(int i=0;i<=cnt;i++){
for(int j=0;j<=cnt+1;j++) printf("%.2lf ",a[i][j]);
puts("");
}
*/
} inline void xy(){
for(int i=0;i<=cnt;i++){
int tmp=i;
for(int j=i+1;j<=cnt;j++) if(a[j][i]>a[tmp][i]) tmp=j;
if(tmp>i) for(int k=cnt+1;k>=i;k--) swap(a[i][k],a[tmp][k]); for(int j=i+1;j<=cnt;j++) if(fabs(a[j][i])>eps){
D o=a[j][i]/a[i][i];
for(int k=cnt+1;k>=i;k--) a[j][k]-=a[i][k]*o;
}
} for(int i=cnt;i;i--){
for(int j=i+1;j<=cnt;j++) a[i][cnt+1]-=a[i][j]*a[j][cnt+1];
a[i][cnt+1]/=a[i][i];
}
} inline void solve(){
getfail();
build();
xy();
} int main(){
scanf("%d%d%d",&n,&l,&m);
for(int i=1;i<=m;i++) scanf("%d%d",&X,&Y),p[i]=X/(D)Y;
for(int i=1;i<=n;i++){
scanf("%s",s+1);
Ins(i);
} solve(); for(int i=1;i<=n;i++) printf("%.2lf\n",a[dy[i]][cnt+1]); return 0;
}
[JSOI2009] 有趣的游戏的更多相关文章
- BZOJ:4820: [Sdoi2017]硬币游戏&&BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)
1444: [Jsoi2009]有趣的游戏 4820: [Sdoi2017]硬币游戏 这两道题都是关于不断随机生成字符后求出现给定字符串的概率的问题. 第一题数据范围较小,将串建成AC自动机以后,以A ...
- BZOJ 1444: [Jsoi2009]有趣的游戏 [AC自动机 高斯消元]
1444: [Jsoi2009]有趣的游戏 题意:每种字母出现概率\(p_i\),有一些长度len的字符串,求他们出现的概率 套路DP的话,\(f[i][j]\) i个字符走到节点j的概率,建出转移矩 ...
- BZOJ 1444:[JSOI2009]有趣的游戏
BZOJ 1444:[JSOI2009]有趣的游戏 题目链接 首先我们建出Trie图,然后高斯消元. 我们设\(f_i\)表示经过第\(i\)个点的期望次数: \[ f_x=\sum i\cdot p ...
- BZOJ 1444 [Jsoi2009]有趣的游戏 (AC自动机 + 概率DP + Gauss)
1444: [Jsoi2009]有趣的游戏 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1382 Solved: 498[Submit][Statu ...
- 【BZOJ1444】[JSOI2009]有趣的游戏(高斯消元,AC自动机)
[BZOJ1444][JSOI2009]有趣的游戏(高斯消元,AC自动机) 题面 BZOJ 题解 先把\(AC\)自动机构建出来,最好构成\(Trie\)图.然后这样子显然是在一个有向图中有一堆概率的 ...
- 1444: [Jsoi2009]有趣的游戏
1444: [Jsoi2009]有趣的游戏 链接 分析: 如果一个点回到0号点,那么会使0号点的概率增加,而0号点的概率本来是1,不能增加,所以这题用期望做. 设$x_i$表示经过i的期望次数,然后初 ...
- 【bzoj1444】[Jsoi2009]有趣的游戏
1444: [Jsoi2009]有趣的游戏 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1007 Solved: 334[Submit][Statu ...
- 【BZOJ1444】[Jsoi2009]有趣的游戏 AC自动机+概率DP+矩阵乘法
[BZOJ1444][Jsoi2009]有趣的游戏 Description Input 注意 是0<=P Output Sample Input Sample Output HINT 30%的 ...
- luogu P6125 [JSOI2009]有趣的游戏
LINK:有趣的游戏 直接说做法了.首先是 我是不会告诉你我看完题后不太会 摸了2h鱼后看题解 一直翻发现自己题目有些没读完整.. 题目中说了每个字符串长度相同 而我一直在思考AC自动机可能存在一些节 ...
随机推荐
- [译]11-spring bean定义的继承
spring中bean的定义包含很多信息,如,构造器参数.property指定的依赖项.初始化方法.工厂类和工厂方法等. 如果spring容器的中每个bean都重复声明这些属性,是非常烦人也是十分低效 ...
- (笔记) RealTimeRender[实时渲染] C3
@author: 白袍小道 转载表明,查看随缘 前言: 从历史上看,图形加速始于每个像素扫描线上的插值颜色重叠一个三角形,然后显示这些值.包括访问图像数据允许纹理应用于表面.添加硬件 插入和测试z深度 ...
- pom中的resources设置
Maven项目中一般都会把配置文件放到src/main/resources目录下,有时为了满足多个环境打包发布,可能会创建一些自定义目录来放置各环境的配置文件,如:src/main/profile/d ...
- PAT——甲级1042:Shuffling Mashine
终于做到甲级了 就一个感觉....题目是真的看不懂,亏我还是四六级都过了的人....可是看完题愣是一点都不懂是什么意思. 1042 Shuffling Machine (20 point(s)) Sh ...
- C#后端调用前端的方法
在我实际开发过程中,刚好遇到c#后端要调用前端js中的方法,所以研究了一下,特分享如下: 前端代码: <%@ Page Language="C#" AutoEventWire ...
- SVN基本介绍
SVN是一种项目合作开发的软件,参与项目的人员可以在不同的地方实现文件和目录的超时空共享. 两个重要的概念: 1.配置库(Repository) SVN的核心是配置库,储存所有的数据,配置库按照文件树 ...
- ArcGIS 创建要素时提示“表已经被注册(table already registered)”
今天一位实施大哥在ArcCatalog中要重建一个要素类,所以就在ArcCatalog中连接上Oracle数据库,直接删除了要素类,然后重新创建了一个新的要素类,可是却报错“表已经被创建”,并提示不可 ...
- min_free_kbytes是内存最安全值的阈值,然后这个值是怎么影响到系统内存回收的呢?
min_free_kbytes 内存域水印值:min_free_kbytes 当不设置的时候:sqrt(16M)=4k 4k*4 = 16k 设置内存水印值的函数是: 6792 /* 6793 * I ...
- 【POJ 2728 Desert King】
Time Limit: 3000MSMemory Limit: 65536K Total Submissions: 27109Accepted: 7527 Description David the ...
- 设置RobotFramework的ftplibrary中,将Upload_file操作的异常改为回显错误信息。
测试中需要通过FTP通道,将数据发送给服务器,而这个上传的数据要被阻断.在结合RobotFramework测试中,安装的ftplibrary,使用upload_file操作,如果上传动作失败,会抛出异 ...