AC自动机+高斯消元 hdu 5955 Guessing the Dice Roll 16沈阳icpc
在AC自动机上,目标节点建立xi = 1的方程,非目标节点建立xi = 0 的方程,其余节点根据Trie树Fail数组转移,建立 xi = ∑ aj * x[i->j] 然后sz个方程,sz个未知数,解得x0,即为从原始状态(游戏开始)到 第i人胜出的概率。 利用高斯消元解方程x0 代码 #include <bits/stdc++.h> const long long mod = 1e9+7; const double ex = 1e-10; const int maxn = 205; #define inf 0x3f3f3f3f using namespace std; int sgn(double x){ if (x > ex) return 1; if ( x < -ex) return -1; return 0; } struct Trie{ int ch[maxn][10]; int last[maxn]; int val[maxn]; int f[maxn]; double gauss[150][150]; int vis[150]; int now; int sz; Trie() { sz = 1; memset(ch[0],0,sizeof(ch[0])); } void init(){ sz = 1; memset(ch,0,sizeof(ch)); memset