显然自动机上高斯消元
根据AC自动机上的转移可以列出一系列方程
但这个样的方程解出来全0是一组解
说明有线性组合的情况
考虑除非没人能赢,否则每个人赢的概率和为1
那么我们只要把原来的第一个方程换成这个即可

 var ans,d:array[..] of double;
a:array[..,..] of double;
w,q,f:array[..] of longint;
trie:array[..,..] of longint;
v:array[..] of boolean;
j,k,i,n,m,l,x,y,t:longint;
s:string; procedure swap(var a,b:double);
var c:double;
begin
c:=a;
a:=b;
b:=c;
end; procedure ac;
var h,r,x,y,i:longint;
begin
h:=;
r:=;
for i:= to m do
if trie[,i]> then
begin
inc(r);
q[r]:=trie[,i];
end; while h<=r do
begin
x:=q[h];
for i:= to m do
if trie[x,i]> then
begin
y:=trie[x,i];
inc(r);
q[r]:=y;
j:=f[x];
while (j>) and (trie[j,i]=) do j:=f[j];
f[y]:=trie[j,i];
end;
inc(h);
end;
end; procedure gauss;
var i,j,k,p,u:longint;
c:double;
begin
u:=;
for i:= to t do
begin
p:=u;
for j:=u+ to t do
if abs(a[j,i])>abs(a[p,i]) then p:=j; if (p=u) and (a[p,i]=) then continue;
if p<>u then
begin
for j:= to t+ do
swap(a[u,j],a[p,j]);
end;
for j:=u+ to t do
if a[j,i]<> then
begin
c:=a[j,i]/a[u,i];
for k:= to t+ do
a[j,k]:=a[j,k]-a[u,k]*c;
end;
inc(u);
end;
for i:=t downto do
begin
if a[i,i]= then continue;
for j:=i+ to t do
a[i,t+]:=a[i,t+]-ans[j]*a[i,j];
ans[i]:=a[i,t+]/a[i,i];
end;
end; begin
readln(n,l,m);
for i:= to m do
begin
readln(x,y);
d[i]:=x/y;
end;
for i:= to n do
begin
readln(s);
j:=;
for k:= to l do
begin
x:=ord(s[k])-;
if trie[j,x]= then
begin
inc(t);
trie[j,x]:=t;
end;
j:=trie[j,x];
end;
w[i]:=j;
v[j]:=true;
end;
ac;
for i:= to t do
begin
a[i,i]:=-;
if not v[i] then
begin
for k:= to m do
begin
j:=i;
while (j>) and (trie[j,k]=) do j:=f[j];
a[trie[j,k],i]:=a[trie[j,k],i]+d[k];
end;
end;
end;
for i:= to t do
if not v[i] then a[,i]:= else a[,i]:=;
a[,t+]:=;
gauss;
for i:= to n do
if (ans[w[i]]>) and (ans[w[i]]<=) then
writeln(ans[w[i]]::)
else writeln('0.00');
end.

bzoj1444的更多相关文章

  1. 【BZOJ1444】[JSOI2009]有趣的游戏(高斯消元,AC自动机)

    [BZOJ1444][JSOI2009]有趣的游戏(高斯消元,AC自动机) 题面 BZOJ 题解 先把\(AC\)自动机构建出来,最好构成\(Trie\)图.然后这样子显然是在一个有向图中有一堆概率的 ...

  2. [BZOJ1444]有趣的游戏(AC自动机+矩阵乘法)

    n个等长字符串,机器会随机输出一个字符串(每个字母出现的概率为p[i]),问每个字符串第一个出现的概率是多少. 显然建出AC自动机,套路地f[i][j]表示i时刻位于节点j的概率. 构建转移矩阵,当i ...

  3. 【BZOJ1444】[Jsoi2009]有趣的游戏 AC自动机+概率DP+矩阵乘法

    [BZOJ1444][Jsoi2009]有趣的游戏 Description Input 注意 是0<=P Output Sample Input Sample Output HINT  30%的 ...

  4. [日常摸鱼]bzoj1444 [JSOI2009]有趣的游戏——AC自动机+矩阵

    今天学校跳蚤市场摆摊聚众吸毒打call,东西卖了一百多好开心_(:з」∠)_ (然后大家中午就去吃了一顿好的x) 下午听演讲然后现在来填坑orz(其实是昨晚的坑) 题目:bzoj1444 先用字符串构 ...

  5. BZOJ1444 : [Jsoi2009]有趣的游戏

    建立AC自动机,并求出转移矩阵. 再用$\sum E(终止节点)=1$去替换第一个方程,高斯消元即可. 时间复杂度$O(n^3l^3)$. 注意精度问题,要特判0.00的情况. #include< ...

  6. bzoj1444[Jsoi2009]有趣的游戏[AC自动机]

    题面 bzoj 我要向师父学习善待每一只数据结构 考虑成环,那么高斯消元 然鹅这道题太小了 所以直接转移矩阵自乘就好啦 终点不向外连边 有一条向自己的,概率为一的自环来作为结尾 对于其他店 若有边\( ...

  7. BZOJ1444[Jsoi2009]有趣的游戏——AC自动机+概率DP+矩阵乘法

    题目描述 输入 注意 是0<=P, n , l, m≤ 10. 输出 样例输入 input 1 3 2 2 1 2 1 2 AB BA AA input 2 3 4 2 1 2 1 2 AABA ...

  8. BZOJ1444:[JSOI2009]有趣的游戏(AC自动机,矩阵乘法)

    Description Input 注意 是0<=P, n , l, m≤ 10. Output Sample Input input 1 3 2 2 1 2 1 2 AB BA AA inpu ...

  9. 【bzoj1444】[Jsoi2009]有趣的游戏

    1444: [Jsoi2009]有趣的游戏 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1007  Solved: 334[Submit][Statu ...

随机推荐

  1. ORA-12011+ORA-06512–job执行失败问题

    oracle库中的一个job,正常运行了一年多,因某种原因导致无法运行,系统尝试多次均失败之后下次执行时间就变成了 4000/1/1. 现导致job失败的问题已经解决,从新运行job时报 12011和 ...

  2. ASP.NET MVC5总结(二)@HTML扩展

    1.@Html.AntiForgeryToken() 用来防止跨站请求伪造(CSRF)攻击的一个措施 2.@Html.ValidationSummary(true) 主要用来 (1). 显示后台 Mo ...

  3. Ext.Net学习笔记02:Ext.Net用法概览

    这两天越来越觉得Ext.Net很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,推荐你看一下<Ext.Net Web 应用程序开发教程>. Ext.Net与ExtJ ...

  4. html-----007

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 利用putty实现文件在linux上传和下载

    利用putty实现文件上传和下载:1.打开windows命令提示符窗口d:(putty在d盘下)cd putty(pscp.exe所在目录)2:上传(主要利用pscp程序)pscp d:/jdk-8u ...

  6. 初识Angular2

    Angular2是面向未来的科技,要求浏览器支持ES6+,我们现在要尝试的话,需要加一些 垫片来抹平当前浏览器与ES6的差异: angular2-polyfills - 为ES5浏览器提供ES6特性支 ...

  7. 02_Jquery_02_元素选择器

    [简述] 元素选择器就是通过元素名来查询元素 $("elementName")这里就可以通过元素名来获取jquery元素了. 但与id选择器不同的是,名称相同的元素有很多,所以获取 ...

  8. Codevs 1427 特种部队(双路DP)

    1427 特种部队 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题目描述 Description 某特种部队接到一个任务,需要潜入一个仓库.该部队士兵分为两路,第一 ...

  9. android软件开发之webView.addJavascriptInterface循环渐进【一】

    本篇文章由:http://www.sollyu.com/android-software-development-webview-addjavascriptinterface-cycle-of-gra ...

  10. delphi cxgrid导出excel去除货币符号

    版本 : devexpress 13.1.4 打开 包在ExpressExportLibary目录中.  修改FCells.SetCellDataCurrency为FCells.SetCellData ...