JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
来源:互联网 发布:淘宝怎样识别死人衣服 编辑:程序博客网 时间:2024/05/20 19:19
Description
Input
Output
Data Constraint
Solution
观察到条件是:
Ak−i+1−Bi=Ak+j−1−Bj 移项后得:
Ak−i+1−Ak+j−1=Bi−Bj 这样条件就只与自己有关,且其实质就是差值恒定。
于是转换条件,就有:
Ai−Ai−1=Bj−Bj−1 那么我们对 A 和 B 各做一次差分,用 KMP 查找 A 中有多少个子串为 B 即可。
时间复杂度
O(N) 。
Code
#include<cstdio>using namespace std;const int N=1e6+1;int a[N],b[N],next[N];inline int read(){ int X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w;}int main(){ int n=read(),m=read(),ans=0; for(int i=1;i<=n;i++) a[i]=read(); for(int i=1;i<=m;i++) b[i]=read(); for(int i=1;i<n;i++) a[i]=a[i+1]-a[i]; for(int i=1;i<m;i++) b[i]=b[i+1]-b[i]; for(int i=2,j=0;i<m;i++) { while(j && b[i]!=b[j+1]) j=next[j]; if(b[i]==b[j+1]) j++; next[i]=j; } for(int i=1,j=0;i<n;i++) { while(j && a[i]!=b[j+1]) j=next[j]; if(a[i]==b[j+1]) j++; if(j==m-1) ans++,j=next[j]; } printf("%d",ans); return 0;}
阅读全文
1 0
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- 【JZOJ 5438】【NOIP2017提高A组集训10.31】Tree
- 【JZOJ 5439】【NOIP2017提高A组集训10.31】Calculate
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- JZOJ5437. 【NOIP2017提高A组集训10.31】Sequence
- JZOJ 5432. 【NOIP2017提高A组集训10.28】三元组
- 【JZOJ 5432】【NOIP2017提高A组集训10.28】三元组
- JZOJ 5407. 【NOIP2017提高A组集训10.21】Deep
- JZOJ 5408. 【NOIP2017提高A组集训10.21】Dark
- 【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy
- JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑
- 【JZOJ 5410】【NOIP2017提高A组集训10.22】小型耀斑
- 【JZOJ 5411】【NOIP2017提高A组集训10.22】友谊
- JZOJ 5414. 【NOIP2017提高A组集训10.22】幸运值
- 彻底搞定Android开发中软键盘的常见问题
- E
- c++11 lambda函数
- struts2 Convention插件零配置,使用注解开发
- Linux系统 各种目录 的作用(转载 谨作笔记)
- JZOJ 5437. 【NOIP2017提高A组集训10.31】Sequence
- POJ-3468 A Simple Problem with Integers
- test
- Kafka设计解析(三)- Kafka High Availability (下)
- too many connections 分析
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试
- 2017第十五届esri用户大会观感(二)——大会整体
- ant 安装和环境配置的方法
- maven 上传第三方jar包到 nexus3.4