bzoj1729: [Usaco2005 dec]Cow Patterns 牛的模式匹配
Description
Input
Output
维护第一个串在每个长度为K的区间内对应位置的排名的hash,与第二个串的排名的hash比较
具体可以用树状数组维护小于指定数的数的个数和大于指定数的数对hash值的贡献,详见代码
#include<cstdio>
typedef unsigned long long u64;
int n,k,s;
int t1[],t2[],a[],b[],as[],ap=;
u64 pp[],h2=,h1=,F[],fs=;
const u64 p=;
void add(int*f,int w,int v){
for(;w<=s;w+=w&-w)f[w]+=v;
}
int sum(int*f,int w){
int v=;
for(;w;w-=w&-w)v+=f[w];
return v;
}
void add(int w,u64 v){
fs+=v;
for(;w<=s;w+=w&-w)F[w]+=v;
}
u64 sum(int w){
u64 v=;
for(;w;w-=w&-w)v+=F[w];
return fs-v;
}
char buf[*],*ptr=buf-;
int _(){
int x=,c=*++ptr;
while(c<)c=*++ptr;
while(c>)x=x*+c-,c=*++ptr;
return x;
}
int main(){
fread(buf,,sizeof(buf),stdin);
n=_();k=_();s=_();
pp[]=;
for(int i=;i<=n;++i)pp[i]=pp[i-]*p;
for(int i=;i<=n;++i)a[i]=_();
for(int i=;i<=k;++i)b[i]=_();
for(int i=;i<=k;++i){
add(t1,a[i],);
add(a[i],pp[i]);
add(t2,b[i],);
}
for(int i=;i<=k;++i){
h1+=pp[i]*sum(t1,a[i]-);
h2+=pp[i]*sum(t2,b[i]-);
}
if(h1==h2)as[ap++]=;
for(int i=k+,j;i<=n;++i){
j=i-k;
h1-=pp[j]*sum(t1,a[j]-);
h1-=sum(a[j]);
add(t1,a[j],-);
add(a[j],-pp[j]);
h1+=sum(a[i]);
h1+=pp[i]*sum(t1,a[i]-);
add(t1,a[i],);
add(a[i],pp[i]);
if(h1==h2*pp[j])as[ap++]=j+;
}
printf("%d\n",ap);
for(int i=;i<ap;++i)printf("%d\n",as[i]);
return ;
}
bzoj1729: [Usaco2005 dec]Cow Patterns 牛的模式匹配的更多相关文章
- BZOJ 1729: [Usaco2005 dec]Cow Patterns 牛的模式匹配
Description 约翰的N(1≤N≤100000)只奶牛中出现了K(1≤K≤25000)只爱惹麻烦的坏蛋.奶牛们按一定的顺序排队的时候,这些坏蛋总会站在一起.为了找出这些坏蛋,约翰让他的奶牛排好 ...
- 【BZOJ1672】[Usaco2005 Dec]Cleaning Shifts 清理牛棚 动态规划
[BZOJ1672][Usaco2005 Dec]Cleaning Shifts Description Farmer John's cows, pampered since birth, have ...
- BZOJ1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚
1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 414 Solved: ...
- BZOJ 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚
题目 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 Time Limit: 5 Sec Memory Limit: 64 MB Description Farm ...
- [Usaco2005 Dec]Cleaning Shifts 清理牛棚 (DP优化/线段树)
[Usaco2005 Dec] Cleaning Shifts 清理牛棚 题目描述 Farmer John's cows, pampered since birth, have reached new ...
- 【BZOJ1731】[Usaco2005 dec]Layout 排队布局 差分约束
[BZOJ1731][Usaco2005 dec]Layout 排队布局 Description Like everyone else, cows like to stand close to the ...
- BZOJ1679: [Usaco2005 Jan]Moo Volume 牛的呼声
1679: [Usaco2005 Jan]Moo Volume 牛的呼声 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 723 Solved: 346[ ...
- BZOJ 1679: [Usaco2005 Jan]Moo Volume 牛的呼声( )
一开始直接 O( n² ) 暴力..结果就 A 了... USACO 数据是有多弱 = = 先sort , 然后自己再YY一下就能想出来...具体看code --------------------- ...
- 3893: [Usaco2014 Dec]Cow Jog
3893: [Usaco2014 Dec]Cow Jog Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 174 Solved: 87[Submit] ...
随机推荐
- C# POST请求 json格式
/* * url:POST请求地址,例如:url = "http://localhost:35229/ddn/GetPostData"; * postData:json格式的请求报 ...
- Conky配置文件
Conky是一个可以在linux系统中实时显示系统性能的工具,美观且十分好用,我们选择安装conky-all程序包 # set to yes if you want Conky to be forke ...
- 2018.11.14 Chopin’s
The lineaments of Chopin’s肖邦 short, dramatic life are familiar to most classical-music enthusiasts. ...
- New Concept English three(19)
27w/m 76words Kidnappers are rarely interested in Animals, but they recently took considerable inter ...
- echarts-detail---散点图
data4 = [{ xAxis: result.AvgEvaluate, seriesId: ', name: '基干360综合分' }, { yAxis: evalue, seriesId: ', ...
- web前端开发中的命名规范
(一)主体 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中: ...
- 单一功能学习——百度AI之身份证识别
以下内容基本是从官方接口文档复制过来的,附带自己封装的代码 时间:2018年4月4日 一.导入工具包 使用maven依赖: <dependency> <groupId>com. ...
- Android Studio单独生成apk
/********************************************************************* * Android Studio单独生成apk * 说明: ...
- kubeadm搭建kubernetes集群之二:创建master节点
在上一章kubeadm搭建kubernetes集群之一:构建标准化镜像中我们用VMware安装了一个CentOS7虚拟机,并且打算用这个虚拟机的镜像文件作为后续整个kubernetes的标准化镜像,现 ...
- websocket IE11 提示SecurityError
一开始我从网上下载的示例地上localhost:8081 在其它 浏览器下都正常,就在IE11下提示SecurityError, 然后把我把localhost换成IP,就好了. 依次记录下.