[TYVJ]1519 博彩
AC自动机模板题,好吧我只是单纯的搞个AC自动机的模板。
//TYVJ 1519
//by Cydiater
//2016.10.18
#include <iostream>
#include <iomanip>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <cstdlib>
using namespace std;
#define ll long long
#define up(i,j,n) for(int i=j;i<=n;i++)
#define down(i,j,n) for(int i=j;i>=n;i--)
const ll MAXN=1e6+5;
const ll oo=1LL<<60;
inline int read(){
char ch=getchar();int x=0,f=1;
while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int N,M,R,fail[MAXN],next[MAXN][12],cnt=0,now,q[MAXN],head,tail,t=1;
bool end[MAXN];
ll f[2][MAXN],ans=0,tol=1;
char s[25];
namespace solution{
void insert(){
now=0;
up(i,1,strlen(s+1)){
int num=s[i]-'0';
if(next[now][num]==0)next[now][num]=++cnt;
now=next[now][num];
}
end[now]=1;
}
void buildAC(){
head=1;tail=0;
up(i,1,R)if(next[0][i]>0)q[++tail]=next[0][i];
for(;head<=tail;head++){
now=q[head];end[now]|=end[fail[now]];
up(i,1,R){
int son=next[now][i];
if(son>0){
fail[son]=next[fail[now]][i];
q[++tail]=son;
}else next[now][i]=next[fail[now]][i];
}
}
}
void init(){
memset(end,0,sizeof(end));
N=read();M=read();R=read();
up(i,1,M){
scanf("%s",s+1);
insert();
}
buildAC();
}
void DP(int id,int t){
up(node,0,cnt)if(end[node]==0&&f[t^1][node]!=0)
up(i,1,R)f[t][next[node][i]]+=f[t^1][node];
}
void slove(){
f[t][0]=1;
up(i,1,N){
t^=1;
memset(f[t],0,sizeof(f[t]));
DP(i,t);tol*=R;
}
up(i,0,cnt)if(!end[i])ans+=f[t][i];
}
void output(){
double tmp=((double)tol-(double)ans)/((double)tol);
printf("%.5lf\n",tmp);
}
}
int main(){
//freopen("input.in","r",stdin);
using namespace solution;
init();
slove();
output();
return 0;
}
[TYVJ]1519 博彩的更多相关文章
- tyvj P1519 博彩游戏(AC自动机+DP滚动数组)
P1519 博彩游戏 背景 Bob最近迷上了一个博彩游戏…… 描述 这个游戏的规则是这样的:每花一块钱可以得到一个随机数R,花上N块钱就可以得到一个随机序列:有M个序列,如果某个序列是产生的随机序列的 ...
- 博彩游戏(tyvj 1519)
背景 Bob最近迷上了一个博彩游戏…… 描述 这个游戏的规则是这样的:每花一块钱可以得到一个随机数R,花上N块钱就可以得到一个随机序列:有M个序列,如果某个序列是产生的随机序列的子串,那么就中奖了,否 ...
- 大型博彩公司招聘 .net,DB,tester,android
大型博彩公司招聘 .net,DB,tester,android,ios等. 等拿完年终奖的朋友,可以先发简历给我,先面试,年后上班. emai:sjchen1203@126.com 要求: 1. 全职 ...
- tyvj1519博彩游戏
博彩游戏 From admin 背景 Background Bob最近迷上了一个博彩游戏…… 描述 Description 这个游戏的规则是这样的:每花一块钱可以得到一个随机数R,花上N块钱就可以得到 ...
- cocos 水果机,老Tiger虎机流水灯,博彩大转盘效果
原(http://www.cnblogs.com/zisou/p/cocos2d-xZhuanpan.html) 博彩大转盘,转盘抽奖的小系统,这是一个很有意思的游戏模块,游戏中增加这样一些趣味的小模 ...
- 买or不买?如何测试博彩公司赔率是否合理?
世界杯期间,烧烤店.酒吧都热闹起来了,柔柔我的朋友圈也热闹起来了,有酱紫的: 还有酱紫的: 然后还有酱紫的: 酱紫的: 当然天台也是一如既然的热闹: 似乎人人都在输钱,那真正的赢家在哪里呢?博彩业的真 ...
- h5博彩webapp项目实例|h5棋牌游戏|h5博彩app案例
html5实现的博彩webapp.h5棋牌app实例,运用h5+css3+zepto+jQ+swiper+layer等技术进行布控开发,750px最大宽度适配手机端设备,采用flex+rem布局样式. ...
- EOS博彩合约设计
集中博彩游戏合约设计 一.功能接口 1. 质押deposit 由用户发起,用户将个人账户中token质押给平台,从而可以进入平台去参与平台活动. 2. 赎回withdraw 由用户发起,在用户结束平台 ...
- 【cocos2d-x 手游研发----博彩大转盘】
博彩大转盘,转盘抽奖的小系统,这是一个很有意思的游戏模块,游戏中增加这样一些趣味的小模块,我会附上源码: 会增进玩家的粘性,每天都想来抽两把试试手气: 我做的这个是个矩形风格的转盘,不是那种圆形的转盘 ...
随机推荐
- js时间倒计时
看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...
- 微软分布式云计算框架Orleans(2):容灾与集群(1)
在上一篇:微软分布式云计算框架Orleans(1):Hello World,我们大概了解了Orleans如何运用,当然上一篇的例子可以说是简单且无效的,因为用了Orleans不可能只写一个Hello ...
- 外网不能访问部署在虚机的NodeJs网站(80端口)
外网能访问部署在虚机的NodeJs网站需注意如下: 在管理门户上配置端点(Http 80->80) 在虚机中的防火墙入站规则中增加应用程序Node.exe的允许规则 启动NodeJs的侦听进程时 ...
- js队列
用指针和数组模拟基本队列 http://blog.csdn.net/zhuwq585/article/details/53177192 js下的事件队列,或者异步队列 http://www.jb51. ...
- VS2013 未找到与約束ContractName
vs2013打开项目无法加载项目,关闭时提示 未找到与約束ContractName... 解決方法,打開控制面板,找到下面這個程序 右击,选 择 修 复
- TrueSkill 原理及实现
在电子竞技游戏中,特别是当有多名选手参加比赛的时候需要平衡队伍间的水平,让游戏比赛更加有意思.这样的一个参赛选手能力平衡系统通常包含以下三个模块: 一个包含跟踪所有玩家比赛结果,记录玩家能力的模块. ...
- MySQL的热备percona-xtrabackup、innobackupex的安装方法
http://blog.csdn.net/dbanote/article/details/13295727 http://blog.csdn.net/yangzhawen/article/detail ...
- 解决 samba不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接
net use * /del /y http://www.cnblogs.com/senior-engineer/p/4528378.html
- [转]十步完全理解SQL
原文地址:http://blog.jobbole.com/55086/ 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程 ...
- [转]VirtualBox – Error In supR3HardenedWinReSpawn 问题解决办法
原文地址:http://chenpeng.info/html/3510 Genymotion 模拟器安装好虚拟机后,启动时报错: —————————VirtualBox – Error In supR ...