博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 1444:[JSOI2009]有趣的游戏
阅读量:5806 次
发布时间:2019-06-18

本文共 2122 字,大约阅读时间需要 7 分钟。

BZOJ 1444:[JSOI2009]有趣的游戏

首先我们建出Trie图,然后高斯消元。

我们设\(f_i\)表示经过第\(i\)个点的期望次数:

\[ f_x=\sum i\cdot p_x(i) \]
\(p_x(i)\)表示经过第\(x\)个点\(i\)次的概率。我们设表示一个单词的节点为关键节点,则所有关键节点只会经过一次,也就是说\(f_{关键}=p_{关键}(1)\),也就是我们要求的答案。
\[ \displaystyle f_x=\sum_{y与x相连}rate_{y\Rightarrow x}f_y \]
特别地\(\displaystyle f_1=\sum_{y与1相连}rate_{y\Rightarrow 1}f_y+1\),因为初始点在\(1\)

\(rate_{y\Rightarrow x}\)就是能从\(y\)走到\(x\)的字母的出现概率。

根据这些等式列方程,再高斯消元就行了。

代码:

#include
#define ll long long#define N 12#define eps 1e-7using namespace std;inline int Get() {int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}while('0'<=ch&&ch<='9') {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x*f;}int n,l,m;double rate[26];double w[N*N][N*N];char str[N];namespace AC_automation { int cnt=1; int id[N]; struct trie { int ch[26]; int w,fail; }tr[N*N]; void Insert(char *s,int No) { int len=strlen(s+1),now=1; for(int i=1;i<=len;i++) { int j=s[i]-'A'; if(!tr[now].ch[j]) tr[now].ch[j]=++cnt; now=tr[now].ch[j]; } id[No]=now; tr[now].w=1; } queue
q; void build_fail() { q.push(1); while(!q.empty()) { int v=q.front(); q.pop(); for(int i=0;i<26;i++) { if(!tr[v].ch[i]) continue ; int sn=tr[v].ch[i],f=tr[v].fail; while(f&&!tr[f].ch[i]) f=tr[f].fail; if(!f) tr[sn].fail=1; else tr[sn].fail=tr[f].ch[i]; q.push(sn); } } } int find_sn(int now,int j) { while(now&&!tr[now].ch[j]) now=tr[now].fail; return now?tr[now].ch[j]:1; } void build_matrix() { for(int i=1;i<=cnt;i++) { w[i][i]=-1; if(tr[i].w) continue ; else { for(int j=0;j
=1;i--) { if(fabs(w[i][i])
0.005) cout<
<
<
<<"\n"; else cout<<"0.00"<<"\n"; } return 0;}

转载于:https://www.cnblogs.com/hchhch233/p/10128850.html

你可能感兴趣的文章
VO BO PO
查看>>
Python关键字
查看>>
SDN在网络这个圈为何如此强大?
查看>>
WCF技术剖析之九:服务代理不能得到及时关闭会有什么后果?
查看>>
Kotlin从入门到“放弃”(二)——函数
查看>>
各大电商纷纷瞄准机器人领域,备战双十一各显神功
查看>>
在AngularJS中学习javascript的new function意义及this作用域的生成过程
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>
Windwos 08R2_DNS全面图文详解
查看>>
重拾黑客精神:后IT时代技术流的回归
查看>>
网络钓鱼大讲堂 Part3 | 网络钓鱼攻击向量介绍
查看>>
拉里·埃里森再谈数据安全,机器学习必将火爆未来
查看>>
阿里云与Intel联合发布加密计算,亚洲首个云上“芯片级”数据保护
查看>>
关注数据中心NFV性能
查看>>
语音唤醒技术:small-footprint keyword spotting
查看>>
用友超客总裁向奇汉:SaaS竞争短跑与中长跑结合才能胜出
查看>>
中小企业网络安全怎么搞?-解读NIST最新中小企业网络安全标准
查看>>
Lisk:一个JavaScript开发者区块链平台
查看>>
Java 中 ConcurrentHashMap 原理分析
查看>>
Petya勒索软件变种Nyetya全球爆发,思科Talos率先响应
查看>>