CF #344 D. Messenger KMP/Z】的更多相关文章

题目链接:http://codeforces.com/problemset/problem/631/D 给定两个压缩形式的字符串,如a3b5a4k7这样的形式 问A在B中出现次数. 分类讨论,如果A是只有一种字符的,则答案数量可能很大,但计算也很简单,直接看B的每一个字符,答案累加上cnt2-cnt1+1 如果A不是单字符的,则答案至多是B的压缩之后长度的数量级. 不考虑A的第一个字符,用KMP或者Z函数来计算A的出现情况,如果匹配长度为lenA-1,则检查是否该匹配的第一个字符与A[0]相等且…
LINK:P5410 模板 扩展 KMP Z 函数 画了10min学习了一下. 不算很难 思想就是利用前面的最长匹配来更新后面的东西. 复杂度是线性的 如果不要求线性可能直接上SA更舒服一点? 不管了 反正这个知识点填过了.. code //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<ctime> #include<cctype> #include<…
CF 1288 E. Messenger Simulator 题目传送门 官方题解 题意想必大家都明白了这里就不赘述了,这里只想重点记录一下几种实现方法 分析 设向前移动的序列为\(a\)序列 对于没有向前移动的数字,出现的最小位置就是它最开始的位置,而求解最大位置时,只需要求出a序列中,有多少种比它大即可(注意不要计算重复) 对于向前移动了的数字 \(i\),出现的最小位置是1.求解最大位置:将它在a序列中出现的位置存放在vector中,对于 i 出现的第一个位置\(pos\), 计算\([1…
D. Messenger 题目连接: http://www.codeforces.com/contest/631/problem/D Description Each employee of the "Blake Techologies" company uses a special messaging app "Blake Messenger". All the stuff likes this app and uses it constantly. Howeve…
题目链接:http://codeforces.com/problemset/problem/126/B 大意:给一个字符串,问最长的既是前缀又是后缀又是中缀(这里指在内部出现)的子串. 我自己的做法是用KMP的next数组,对所有既是前缀又是中缀的位置计数,再从next[n]开始走next,也即枚举所有既是前缀又是后缀的子串,看cnt[i]是否大于0,如果大于0则说明作为中缀出现过(也即有大于i的某个位置的next为i) #include <iostream> #include <vec…
KMP 一些简单的定义: 真前缀:不是整个字符串的前缀 真后缀:不是整个字符串的后缀 当然不可能这么简单的,来个重要的定义 前缀函数: 给定一个长度为\(n\)的字符串\(s\),其 \(前缀函数\) 为一个长度为\(n\)的数组\(\pi\),其中\(\pi_i\)表示 如果字串\(s[0...i]\)存在一对相等的真前缀和真后缀\(s[0...k]~and~s[i-(k-1)...i]\),则\(\pi_i\)为这个真前缀(真后缀)的长度\(k\) 如果有不止一对,则\(\pi_i\)为其中…
题目链接 首先想到kmp, 和普通的不一样的是,中间部分严格相等, 头和尾的字符相等但是数量可以不相等. 所以应该把子串的头和尾先去掉,然后对剩下的部分进行kmp. 子串长度为1或2要特别讨论. 不要忘记一开始先把相邻的相同的部分合并掉. #include <iostream> #include <vector> #include <cstdio> #include <cstring> #include <algorithm> #include…
$\DeclareMathOperator{\fail}{fail}$ KMP 算法堪称经典中的经典,然而这么多年以来,我却未能完全理解这个算法.我对 KMP 算法掌握的程度,是知其原理,但写不出来. 今天打 CF,遇到一个 KMP 的题目,解法很好想,代码量也不大,我却未能在最后的 17 分钟内 AC.痛定思痛,痛何如哉.今天我要用最详细的语言,把我对 KMP 算法的理解写下来,借此将这个算法印在我心里. 相比于朴素的匹配算法,KMP 算法的优越之处在于不会进行重复比较(或者说不会进行重复匹配…
目录 语法 c++ java 动态规划 多重背包 最长不下降子序列 计算几何 向量(结构体) 平面集合基本操作 二维凸包 旋转卡壳 最大空矩形 | 扫描法 平面最近点对 | 分治 最小圆覆盖 | 随机增量法 三维向量(结构体) 三维凸包 几何杂项 数据结构 ST表 单调队列 树状数组 线段树 并查集 左偏树 珂朵莉树,老司机树 莫队 二叉搜索树 一些建议 图论 图论的一些概念 图论基础 最短路径 最小生成树 树论的一些概念 最近公共祖先 联通性相关 图上的NP-hard问题 弦图+区间图 | 最…
使用sourcetree将本地项目提交到github里,目前来说还是很流行的,我也是听说好玩,所以来琢磨了一下,从环境搭建到配置好,差不多用了一下午加一晚上的时间,有点虐心,好吧,废话不多说,介绍一下安装的全流程:需要下载的资料都放在我的网盘里,自行下载就可. 1.安装一个FQ的软件.下载地址:http://pan.baidu.com/s/1ske0kLv 提取码:2kks     文件解压码:laod.cn 2.修改host文件.找到host文件,查看http://laod.cn/hosts/…
一.格式 1.1 开头 必须以 "# !/bin/bash"  开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用declare -i声明为数值类型,也可以用 var = $((数值运算)),注意是两个括号 2.3 善用判断式 2.3.1 test命令 test命令可以测试,可以利用测试的结果走后续流程.测试文件和文件属性还是比较方便的. :~/test$ test -e nofile && echo "…
    我们的用户量大,修改js文件后,用户反馈登录出现问题.实际上刷新一下就没事了.就是因为用户的浏览器使用的还是本地缓存的js代码.   强制刷新一般就会重新去服务器获取新的js代码.但不能让用户每次都这样子去做.     于是我思考一个问题: 如果修改了js文件中的js代码,发布代码到线上后.用户的浏览器使用的还是原来js缓存.所以并不会马上生效. 如何才能让浏览器使用最新的js文件呢? 很多人想到的第一反应是,在<script type="text/javascript"…
VS~通过IIS网站启用"域名"调试 在我们开发网站时,对某些信息进行序列化时,通常使用session,cookies,nosql等技术,而为了安全,我们在服务器上很多情况都做了防止盗链的设计,这给本机调试带来了不便,因为,本机都是以localhost:端口号来进行调试的,而网站上的资料一般是正式域名,这时,盗链启作用后,你在本机调试时将无法对它进行获取,在VS2012中,首次使用了"按域名调试"的方法,它给我们开发复杂网站带来了福音! 下面将安域名调试的方法总结一…
正则表达式模式: 模式 描述 ^ 匹配的开始的 $ 匹配行尾 . 匹配除换行符的任何单个字符.使用-m选项允许其匹配换行符也是如此. [...] 匹配括号内任何单个字符 [^...] 匹配非单个字符集中的单个字符 * 匹配个或多个匹配前面表达式. + 匹配个或多个先前出现的表达式. ? 匹配或前面出现的表达式. { n} 精确匹配n个前面表达式的数量. { n,} 匹配n或多次出现上述表达式. { n, m} 匹配至少n次和前面表达式的大多数出现m次. a| b 匹配a或b. (re) 组正则表…
.NET中 类型,对象,线程栈,托管堆在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and The Managed Heap for .NET by 唐小崇 http://www.cnblogs.com/tangchong .NET中的类型,无论是值类型或引用类型都是继承自Object的类.这点跟Java类似,但与C/C++有很大不同.既然值类型与引用类型都是类,那它们的没有什么不同的地方.…
这篇帖子,不会过多解释X509证书的基础理论知识,也不会介绍太多SSL/TLS的基本信息,重点介绍如何用java实现SSL协议需要的X509规范的证书. 之前的博文,介绍过用openssl创建证书,并配合EMQ进行发布订阅的工作逻辑,基于openssl创建证书和秘钥,还算是比较简便的,然后,基于java创建证书的过程,就有些许的小不方便,能找到的公开资料并不是太多,看到的都是基于keytool指令进行构建的介绍,但是呢,这种方案,对于我们的物联网安全应用,似乎不是很和谐.于是,啃了一段时间的ja…
一.日志文件样式 二.目标 1.备份压缩.log结尾&&时间样式为“date +%Y%m%d”的日志文件(如:20170912.20160311等) 2.可指定压缩范围(N天前至当天):如:今天.昨天(date -d "-1 day" +%Y%m%d)至今天.前天至今天 压缩命名格式为:日期.tar.gz(或:日期.tar.bz2),压缩N天范围内文件后将会生成N个压缩包 3.可指定压缩模式(二选一):tar czf  或  tar cjf 4.可指定删除范围:删除N天…
今天给出一个例程,像是个小游戏!哈哈 一 html //anagram.html <!DOCTYPE HTML> <html> <head> <title>Anagram</title> </head> <body> <h3>Pile:</h3> <div id="letterpile"></div> <h3>Word:</h3>…
首先要说明,DSST//BMVC2014类的CF是从MOSSE//CVPR2010模型得到的,是从信号的角度考虑问题,该类CF直接认为信号和滤波器之间存在相关的关系 而KCF//TPAMI2015类CF并不默认这一关系,其依然是从传统的分类器(岭回归)角度去求解一个分类器的权重,但是由于其强制训练样本为循环矩阵形式,从而内嵌了权重w有一个类似于相关滤波器的作用. 这两种是不同的,所以最后的检测结果实际上也是有区别的. 而MOSSE(DSST)类的滤波器h和KCF类的权重w实际上有比较大的区别.因…
http://blog.csdn.net/cloudresearch/article/details/19092219 在openstack havana的release note中有如下介绍“Attached Cinder volumes can now be encrypted. Data is decrypted as needed at read and write time while presenting instances with a normal block storage d…
在我们开发网站时,对某些信息进行序列化时,通常使用session,cookies,nosql等技术,而为了安全,我们在服务器上很多情况都做了防止盗链的设计,这给本机调试带来了不便,因为,本机都是以localhost:端口号来进行调试的,而网站上的资料一般是正式域名,这时,盗链启作用后,你在本机调试时将无法对它进行获取,在VS2012中,首次使用了"按域名调试"的方法,它给我们开发复杂网站带来了福音! 下面将安域名调试的方法总结一下 一 HOSTS文件中设置你的域名 127.0.0.1…
思路: kmp + 二分. 实现: #include <iostream> #include <cstdio> #include <algorithm> #include <vector> using namespace std; ; int neXt[MAXN]; void getNext(string s) { int n = s.length(); neXt[] = -; , j = ; while (j < n) { || s[j] == s[…
原文:WPF扑克牌之红桃K 有些什么用途呢?我想,如果你有兴趣,可用来制作WPF扑克牌游戏. 没有任何技术含量,需要做的是在Blend中绘图或者使用Illustrator,CoreDraw等矢图设计软件绘图,然后转换成XAML格式. XAML CODE:<Viewbox Width="415.2" Height="620.1"  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentat…
今天来讲解一下压缩和打包的相关命令,首先得先明确两个概念,即:压缩和打包 压缩:将文件或目录进行压强,使文件或目录大小变小 打包:表示将目录中的所有内容,捆绑在一起,方便传输,打包后的文件会变大,不一定回变小 1.压缩解压命令:gzip 原意:GNU(是一个组织) zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip 选项 [文件] 功能:压缩文件 压缩后的文件格式:.gz,gzip和bzip2一样,都会自动产生一个后缀名 例子:gzip /prem/newfile1 结…
1. ngx_command_t 为了统一配置项目的解析,Nginx 定义了如下数据类型对所有的 Nginx 配置项进行了统一的描述. typedef struct ngx_command_s ngx_command_t; struct ngx_command_s { /* * 该配置指令的名称,如 daemon, worker_processes 等 */ ngx_str_t name; /* * 该配置项的类型,指定配置项可以出现的位置.如,出现在 server{} * 或 location…
Hadoop的本地模式为Hadoop的默认模式,不需要启用单独进程,直接可以运行,测试和开发时使用. 在<啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建>中若环境搭建成功,则直接可以使用本地模式. 在这里我们运行官方的两个案例 1.官方grep案例 1)在hadoop-2.7.2文件夹下面创建一个input文件夹…
nginx成为非常流行的代理服务软件,最根本的原因也许是在于其强悍性能.但还有一些必要的条件,比如功能的完整,配置的易用,能够解决各种各样的实际需求问题,这些是一个好的软件的必备特性. 那么,今天我们就来看看nginx配置的部分原则和解析原理吧.我们只做location部分的细节解析,但其他配置道理基本相通,推一及二即可. 1. nginx配置的基本原则 nginx是支持高度配置化的,那么也许就会涉及许多部分的配置,要如何协调好这些配置,是个问题.比如是否将配置定义一个个独立的文件,或者其他.…
众所周知,tzc 在 2019 年(12 月 31 日)就第一次开始接触多项式相关算法,可到 2021 年(1 月 1 日)才开始写这篇 blog. 感觉自己开了个大坑( 多项式 多项式乘法 好吧这个应该是多项式各种运算中的基础了. 首先,在学习多项式乘法之前,你需要学会: 复数 我们定义虚数单位 \(i\) 为满足 \(x^2=-1\) 的 \(x\). 那么所有的复数都可以表示为 \(z=a+bi\) 的形式,其中 \(a,b\) 均为实数. 复数的加减直接对实部虚部相加减就行了. 复数的乘…
Your environment has been set up for using Node.js 8.5.0 (x64) and npm. C:\Users\horn1>cd C:\Users\horn1\Desktop\python\42-torrentParser C:\Users\horn1\Desktop\python\42-torrentParser>python torrentParser.py 文件名=./6.torrent 文件结构: announce:b'http://t…
D. Messenger time limit per test2 seconds memory limit per test512 megabytes inputstandard input outputstandard output Each employee of the "Blake Techologies" company uses a special messaging app "Blake Messenger". All the stuff likes…