http://codevs.cn/problem/3945/ (题目链接)

题意

  给出一个诡异的图形,再给出一个歪七扭八的线,问图形上下两条边与线的匹配→_→

Solution

  前后求差然后KMP,这种数字的匹配还是KMP靠谱,hash太容易冲突了。

细节

  注意可以上下翻转有4种匹配方式

代码

// codevs3945
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#define LL long long
#define inf 2147483640
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;const int maxn=1000010;
int next[maxn],t[maxn],p[maxn],a[maxn],b[maxn];
int n,m;void calnext() {next[1]=0;for (int i=2,j=0;i<=n;i++) {while (j && p[j+1]!=p[i]) j=next[j];if (p[j+1]==p[i]) j++;next[i]=j;}
}
int kmp() {calnext();int cnt=0;for (int j=0,i=1;i<=m;i++) {while (j && t[i]!=p[j+1]) j=next[j];if (t[i]==p[j+1]) j++;if (j==n) cnt++,j=next[j];}return cnt;
}
int main() {scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) scanf("%d",&a[i]);for (int j=1;j<=m;j++) scanf("%d",&b[j]);if (n==1) {printf("%d",m*4);return 0;}n--,m--;int ans=0;for (int i=1;i<=n;i++) p[i]=a[i+1]-a[i];for (int i=1;i<=m;i++) t[i]=b[i+1]-b[i];ans+=kmp();for (int i=1;i<=n;i++) p[i]=a[n-i+2]-a[n-i+1];ans+=kmp();for (int i=1;i<=n;i++) p[i]=0;ans+=2*kmp();printf("%d\n",ans);return 0;
}

  

转载于:https://www.cnblogs.com/MashiroSky/p/6077877.html

【codevs3945】 完美拓印相关推荐

  1. 汽车过户时,为什么要拓印车辆的两号?

    大家好,今天我们来聊一下汽车过户时的必备环节--拓印车辆的两号. 首先,咱们来看看这个"拓印"是个啥玩意.拓印,其实就是将车辆的发动机号码和车架号码,用特殊的工具进行拷贝.这可不是 ...

  2. 生化危机5 / BIOHAZARD5 简直就是一款完美的印钞机?(+2009.4.9)

    生化危机5已经发布已经有一周了,朋友很多都已经通关了吧. 单纯的看生化危机5的确是一个部精彩的游戏. 从那精美绝伦的画面,跌宕潜伏的好莱坞式的编剧,双人协同作战,还有Jill的悬念... 从每个方面看 ...

  3. 开博尔Type-c转DP线,完美拓屏传输音视频信号

    随着七彩虹RTX2070显卡的入手,显示器也一咬牙进行了同步升级,提升到了2K@165Hz的华硕TUF Gaming VG27A,平时使用自然是优选的DP线. Type-C接口的优点是插头不分正反随便 ...

  4. 洪荒制作量子计算机 小说,洪荒:从南天门开始

    只见灵台之中,一座通天彻地的圆形光轮横贯虚空,其上有着无尽的道韵光芒流转不息. 一股庞大的信息涌入元神,差点儿让苏羡晕过去. "量子计算机,推演功法,提升修为--这有些复杂啊,如果有个系统面 ...

  5. CodeVS 第一次月赛 题解

    比赛情况 比赛共 254 人提交代码,最高分 250 分,有 102 人 100 分以上. 第一题共 85 人满分,第二题最高分 90,第三题最高分 100. A 数学奇才琪露诺 题意 设s(x)s( ...

  6. Photoshop CS制作书法拓印字效果

    有很多古代书法名家的字帖都是拓印出来的,有了photoshop,我们完全可以自己制作拓印书法.再在旁边写落上自己的名字,哈哈,也成书法家了!(最终效果) 1.选择菜单栏中的"文件" ...

  7. 拓文是什么_拓_拓是什么意思_拓字怎么读_拓的含义_拓字组词-新东方在线字典...

    基本词义 ◎ 拓 搨 tà 〈动〉 (1) 拓印 [make rubbings from inscriptions, pictures, etc. on stone tablets or bronze ...

  8. 浪潮之巅 第十六章 印钞机——最佳的商业模式(吴军)

    2012-12-17 update1.1 : 调整格式.错别字 所有成功的大公司都有好的商业模式,很多大公司的兴起,不是靠技术的革新而是靠商业模式的转变. 当我们的社会进入文明时代后,商业总是伴随着生 ...

  9. 浪潮之巅第十六章 — 印钞机:最佳的商业模式

    转自:http://www.google.com.hk/ggblog/googlechinablog/2009/07/blog-post_8551.html 当我们的社会进入文明时代后,商业总是伴随着 ...

最新文章

  1. 从HP发布BSM新版套件看网管与安管的融合
  2. srm32f4按键蜂鸣器_stm32 用中断实现按键点灯和蜂鸣器鸣叫(固件库版)
  3. jasp报错_JSP报错!成功解决问题200+追加分数!
  4. velocity 遍历map
  5. 6月第1周全球域名注册商(国际域名)新增注册量TOP15
  6. linux下raid5的配置
  7. 推荐 | Transformer最新成果!Learn to Dance with AIST++: Music Conditioned 3D Dance Generation!
  8. 常见查找算法(Java代码实现)
  9. java 生成txt日志方法,java定向输出程序日志(输出到txt文件中)
  10. linux下各种文件设备,各硬件设备在Linux中的文件名
  11. linux下已修改但尚未保存_linux下查看和修改文件时间
  12. 【语义分割】 DRANet Scene Segmentation With Dual Relation-Aware Attention Network
  13. linux下nohup后台运行RSSHub等nodejs项目,开启与关闭
  14. 用curve_fit拟合幂函数与excel拟合误差问题
  15. 龙芯平台(LoongArch)常用开发工具安装
  16. win7的ie10浏览器打不开,就是双击图标无反应
  17. 【生信】全基因组关联分析(GWAS)原理
  18. 不用找了,这300家公司面试不考算法
  19. Latex 字母上面加符号 波浪线 横线 角号等
  20. 【iOS】调用百度、高德地图SDK

热门文章

  1. matlab给hfss建模,HFSS-MATLAB联合建模
  2. oracle dba 命令行,Oracle DBA常用命令
  3. HDOJ水题集合5:杂题
  4. 【CCCC】L2-011 玩转二叉树 (25分),二叉树建树与遍历(我讨厌树,@L2-006)
  5. 百度深度学习初级工程师认证划水贴
  6. 【HNOI2003】【BZOJ1218】激光炸弹
  7. NYOJ41 - 三个数从小到大排序
  8. mysql动态函数库_mysql自定义函数与动态查询
  9. dev c++代码自动补全_python3代码如何自动补全?
  10. 第四章节 窗体应用(windows应用程序)