Fukuoka 2011 F - City Merger <路径压缩,位运算,AC自动机>(二)

2015-11-21 01:05:33 · 作者: · 浏览: 25
or (i=0;i ??? for (t=1;t<=n;t++)?
??? {?
????????? k=1-k;?
????????? memset(dp[k],-1,sizeof(dp[k]));??
????????? for (i=0;i ???????????? for (j=0;j ??????????????? for (p=0;p<=g;p++)?
??????????????? if (dp[1-k][j][p]!=-1)?
??????????????? {?
?????????????????????? x=point[need[i]].w|p;?
?????????????????????? if (dp[k][i][x]==-1 || dp[k][i][x]>dp[1-k][j][p]+arc[j][i])?
????????????????????????? dp[k][i][x]=dp[1-k][j][p]+arc[j][i];?
??????????????? }?
??? }?
??? ans=oo;?
??? for (i=0;i ?????? if (dp[k][i][g]!=-1 && dp[k][i][g] ??? return ans;?
}?
int main()?
{??
??? while (~scanf("%d",&n))?
??? {?
??????????? if (!n) break;?
??????????? Built_Trie();?
??????????? Built_AC_Automation();?
??????????? Built_Arc();??
??????????? printf("%d\n",EXE_DP());?
??? }?
??? return 0;?
}?