自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习之路

博客内无干货,单纯的备份自己的学习笔记而已,知道这些年做过什么,不浑浑噩噩的活下去。

  • 博客(11)
  • 收藏
  • 关注

原创 [KMP求最小循环节][HDU3746][Cyclic Nacklace]

题意给你个字符串,问在字符串末尾还要添加几个字符,使得字符串循环2次以上。解法无论这个串是不是循环串 i-next[i] 都能求出它的最小循环节代码:/*思路:kmp+字符串的最小循环节问题分析:1 题目要求的是给定一个字符串,问我们还需要添加几个字符可以构成一个由n个循环节组成的字符串。2 可知我们应该先求出字符串的最小循环节的长度:假设字符串的长度为len,那么最小的循环节就是cir =

2015-09-22 17:14:25 663

原创 [扩展KMP][HDU3613][Best Reward]

题意:将一段字符串 分割成两个串 如果分割后的串为回文串,则该串的价值为所有字符的权值之和(字符的权值可能为负数),否则为0。 问如何分割,使得两个串权值之和最大思路:首先了解扩展kmp 扩展KMP:给出模板串A和子串B,长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0<=i<=lenA-1),求出A[i..lenA-1]与B的最长公共前缀长度,记为ex[i](或者说

2015-09-22 16:51:41 407

原创 [Manacher][HDU3613][Best Reward]

题意: 将一段字符串 分割成两个串 如果分割后的串为回文串,则该串的价值为所有字符的权值之和(字符的权值可能为负数),否则为0。 问如何分割,使得两个串权值之和最大思路: 裸的: 枚举分割点,计算,O(n) 判断是否回文 总复杂度O(n^2) 优化: 利用Manacher的预处理 O(1)判断是否回文 复杂度O(n)//Manacher/* ** 求最长回文子串 */ #

2015-09-22 16:09:50 518

原创 [KMP][HDU3336][Count the string]

题意计算所有S的前缀在S中出现了几次思路跟前缀有关的题目可以多多考虑KMP的NEXT数组#include <cstdio>#include <cstring> #include <iostream>#include <cstdlib>using namespace std;char S[2000000]; int NEXT[2000000];int dp[2000000];//dp[i

2015-09-22 14:49:16 418

原创 [KMP求最小循环节][HDU1358][Period]

题意求所有循环次数大于1的前缀 的最大循环次数和前缀位置 解法直接用KMP求最小循环节 当满足i%(i-next[i])&&next[i]!=0 前缀循环次数大于1 最小循环节是i-next[i]#include <cstdio>#include <cstring> #include <iostream>#include <cstdlib>using namespace

2015-09-21 00:01:05 413

原创 python 笔记4-- 函数式编程

高阶函数 把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。在python中 函数也是一种变量def add(x, y, f): return f(x) + f(y)map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。>>> def f(x):

2015-09-19 17:05:12 382

原创 [裸KMP][HDU1711][Number Sequence]

题意找到子串在母串出现的第一个位置解法裸的KMP特别的地方第一次不看模板自己敲的KMP#include<stdio.h>const int maxn=100000;const int MAXN=1000000;int next[maxn];int S[MAXN];int T[maxn];int N,M;void get_next(){ for(int i=2;i<=M;i++

2015-09-19 11:47:34 406

原创 python 笔记3--高级特性

切片语法L[l:r] 取L[l],L[l+1]…L[r-2],L[r-1]L[l:r:m] 取L[l],L[l+m],L[l+2*m],L[l+3*m]….(满足l+n*m<=r-1)tips字符串,tuple也可以切片迭代dict迭代key>>> for key in d: print(key)迭代valuefor value in d.values()

2015-09-19 09:16:32 427

原创 python 笔记2--函数

函数变量>>> a = abs # 变量a指向abs函数>>> a(-1) # 所以也可以通过a调用abs函数1定义函数def my_abs(x): if x >= 0: return x else: return -x默认参数陷阱 所以,定义默认参数要牢记一点:默认参数必须指向不变对象! 例如None或常量可变参数 本质是一个

2015-09-10 23:16:23 399

原创 【网络流】【1010】【棋盘加数】

题目大意一个 N*M 的棋盘上每个格子有一个数。每次选择两个相邻的格子,并使这两个数都加上 1。问最少多少次能使棋盘上的数都变成同一个数,如果永远不能变成同一个数则输出-1。

2015-09-10 14:43:00 610

原创 python 笔记1--基础类型

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-09-10 03:19:10 466

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除