洛谷 P2922 [USACO08DEC]秘密消息Secret Message

摘要:
P2922[USACO08DEC]秘密消息标题描述!到目前为止,他们彼此之间都在发送保密信息。每一个杠杆计数器副本,FarmerJohnhasn都接受了第一个_ i(1˂
P2922 [USACO08DEC]秘密消息Secret Message

题目描述

Bessie is leading the cows in an attempt to escape! To do this, the cows are sending secret binary messages to each other.

Ever the clever counterspy, Farmer John has intercepted the first b_i (1 <= b_i <= 10,000) bits of each of M (1 <= M <= 50,000) of these secret binary messages.

He has compiled a list of N (1 <= N <= 50,000) partial codewords that he thinks the cows are using. Sadly, he only knows the first c_j (1 <= c_j <= 10,000) bits of codeword j.

For each codeword j, he wants to know how many of the intercepted messages match that codeword (i.e., for codeword j, how many times does a message and the codeword have the same initial bits). Your job is to compute this number.

The total number of bits in the input (i.e., the sum of the b_i and the c_j) will not exceed 500,000.

Memory Limit: 32MB

POINTS: 270

贝茜正在领导奶牛们逃跑.为了联络,奶牛们互相发送秘密信息.

信息是二进制的,共有M(1≤M≤50000)条.反间谍能力很强的约翰已经部分拦截了这些信息,知道了第i条二进制信息的前bi(l《bi≤10000)位.他同时知道,奶牛使用N(1≤N≤50000)条密码.但是,他仅仅了解第J条密码的前cj(1≤cj≤10000)位.

对于每条密码J,他想知道有多少截得的信息能够和它匹配.也就是说,有多少信息和这条密码有着相同的前缀.当然,这个前缀长度必须等于密码和那条信息长度的较小者.

在输入文件中,位的总数(即∑Bi+∑Ci)不会超过500000.

输入输出格式

输入格式:

 

  • Line 1: Two integers: M and N

  • Lines 2..M+1: Line i+1 describes intercepted code i with an integer b_i followed by b_i space-separated 0's and 1's

  • Lines M+2..M+N+1: Line M+j+1 describes codeword j with an integer c_j followed by c_j space-separated 0's and 1's

 

输出格式:

 

  • Lines 1..M: Line j: The number of messages that the jth codeword could match.

 

输入输出样例

输入样例#1:
4 5 
3 0 1 0 
1 1 
3 1 0 0 
3 1 1 0 
1 0 
1 1 
2 0 1 
5 0 1 0 0 1 
2 1 1 
输出样例#1:
1 
3 
1 
1 
2 

说明

Four messages; five codewords.

The intercepted messages start with 010, 1, 100, and 110.

The possible codewords start with 0, 1, 01, 01001, and 11.

0 matches only 010: 1 match

1 matches 1, 100, and 110: 3 matches

01 matches only 010: 1 match

01001 matches 010: 1 match

11 matches 1 and 110: 2 matches

#include<cstring>
#include<cstdio>
#define N 200000
int a[N],m,n,num[N],cnt[N],end[N],trie[N][3],fail[N],siz=1;
inline void ins(int L){
    int p=1;
    for(int i=1;i<=L;++i){
        if(!trie[p][a[i]])
            trie[p][a[i]]=++siz;
        p=trie[p][a[i]];
        cnt[p]++;
    }
    end[p]++;
}
int query(int L){
    int p=1,ans=0,f=0;
    for(int i=1;i<=L;++i){
        p=trie[p][a[i]];
        if(!p){
            f=1;
            break;
        }
        ans+=end[p];
    }
    if(!f) return ans+cnt[p]-end[p];
    else return ans;
}
int main(){
    scanf("%d%d",&m,&n);
    for(int l,i=1;i<=m;++i){
        scanf("%d",&l);
        for(int j=1;j<=l;++j)
            scanf("%d",&a[j]);
        ins(l);
    }
    for(int l;n--;){
        scanf("%d",&l);
        for(int i=1;i<=l;++i)
            scanf("%d",&a[i]);
        printf("%d
",query(l));
    }
    return 0;
}

免责声明:文章转载自《洛谷 P2922 [USACO08DEC]秘密消息Secret Message》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AssemblyInfo.cs文件的作用Linux Shell系列教程之(七)Shell输出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

华为 HG526 破解实录(一)Cfg文件加解密工具

几天前,我去中国电信安装E169软件包,并发送了一个华为HG526无线路由猫和一个中兴xxx网络机顶盒(尚未开始制造麻烦)。当然,无线路由猫一如既往地被阉割了。搜索之后,我开始了我的快攻之旅。1.打开catdrop管理页面,使用telecomadmin和nE7jA%5m登录;2.将U盘插入猫。3.开放式管理=˃设备管理、备份配置。4.打开U盘,放下ctce8...

Nginx 对客户端请求的限制

本文记录了Nginx静态web服务器对客户端请求的限制的配置项。附加了禁止GET方法和HEAD方法的配置。limit_ exceptGET{allow192.168.1.0/32;denyall;}2) 最大HTTP请求包语法:client_max_body_sizesize;默认值:client_max_body_size1m;配置块:当http、服务器和...

mysql 视图

如果更新的值不在视图范围内,则不允许更新。如果创建视图时未使用withcheck选项,则MySQL在更新视图中的某些数据时不会执行有效性检查。对于上面的团队视图,MySQL将使用视图的公式来替换它,视图公式将合并到select中。也就是说,它最终被提交给MySQL来处理SQL语句。具体来说,MySQL首先获得视图执行结果,该结果形成中间结果,并临时存储在内存...

推荐几种加快火狐浏览器速度的办法

键入browser.cache。内存容量,指定值65536。确认后,重新启动Firefox以获得更大的缓存。这对于减少数据传输非常有帮助,特别是如果您的月流量有限,并且它几乎可以使Firefox浏览器的性能翻倍。...

Docker(一)

Docker的优势:1.更高效的利用系统资源。docker-v:查看Docker版本。dockerhistory:查看镜像内的历史记录。dockerdiff:查看修改的内容。使用Dockerfile定制镜像:1.以之前定制nginx镜像为例,这次我们使用Dockerfile来定制。操作Docker容器:启动容器有两种方式:一种:是基于镜像新建一个容器并启动,...

HPE Proliant DL380 GEN10服务器配置iLO 5/RAID/安装系统

1、 配置ILOIP:II。配置raid:按F10选择SmartStorageAdministrator以选择阵列卡,配置以创建阵列以选择硬盘(此处全选),选择“是”以配置raid(此处配置raid5),单击“完成”以查看现有raid III。安装系统:选择本地镜像以重新启动并等待...