KMP_next数组应用_最小循环元

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83785624 循环元: 如果一个字符串S是由字符串T重复k次构成, 则称T是S的循环元, 长度最小的T称为S的最小循环元, 此时k最大 结论1: 字符串S[0...n - 1]有长度为len的循环元的充要条件是len整除n且S[0...n - 1 - len] = S[len...n - 1]. (该结论较易证明, 此处不再赘述证明过程) 结论2
分类: 其他 发布时间: 11-09 23:34 阅读次数: 0

KMP_next数组应用_最小循环元_POJ1961_Period

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83819314 点此打开题目页面 思路分析: 在本人之前的博文中详细讨论过字符串循环元与next数组的关系, 直接应用相关结论即可, 下面给出AC代码: //POJ1961_Period #include <iostream> #include <cstdio> using namespace std; const int MAX = 1e6 +
分类: 其他 发布时间: 11-09 23:33 阅读次数: 0

KMP_字符串最小表示_CH1802_Necklace

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83824853 点此打开题目页面 思路分析: 方法一: 直接使用字符串Hash和二分搜索判断两个字符串字典序大小关系, 容易给出时间复杂度为O(nlg(n))的解决方案, n为输入字符串的长度, 具体实现见如下AC代码: //CH1802_Necklace #include <cstdio> #include <cstring> using na
分类: 其他 发布时间: 11-09 23:33 阅读次数: 0

Hash_CH1806_Matrix

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83830305 点此打开题目页面 思路分析: 设输入的M行N列矩阵为C, A行B列矩阵为D, 对于C的所有A行B列子矩阵hash其对应的所有元素之和的低64位对99991取模的值加上其第一行对应的hash值. 对于D, 计算其每行对应的字符串hash值. 在比对C的某个A行B列子矩阵和D时只需比较这A行的字符串hash值即可. 下面给出AC代码:
分类: 其他 发布时间: 11-09 23:33 阅读次数: 0

KMP_next数组应用_循环元_POJ2185_Milking Grid

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83860313 点此打开题目页面 思路分析: 设给定图形可由AB子矩形重复而成, 稍一想便知, 给定图形必定可由其最左上角的AB子矩形重复而成. 因此只需找到所有行(长度C)同时满足S[1...k] = S[C - k + 1...C]的最大的k和所有列(长度为R)同时满足T[1...m] = T[R - m + 1...R]的最大的m, 即为最小
分类: 其他 发布时间: 11-09 23:33 阅读次数: 0

Hash_字符串hash_二分_倍增_CH1809

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83862108 点此打开题目页面 思路分析: 字符串hash配合二分或倍增均可, 下面先给出配合二分的AC代码, 然后给出配合倍增的AC代码: //CH1809_匹配统计 #include <iostream> #include <cstdio> using namespace std; const int MAX = 2e5 + 5, P =
分类: 其他 发布时间: 11-09 23:32 阅读次数: 0

Trie树_CH1601_前缀统计

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83862304 点此打开题目页面 思路分析: 直接应用Trie树即可, 下面给出AC代码: //CH1601_前缀统计 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAX = 1e6 + 5; int trie[MA
分类: 其他 发布时间: 11-09 23:32 阅读次数: 0

Trie树_CH1602_The XOR Largest Pair

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83864338 点此打开题目页面 思路分析: 易知, 题目等价于计算i, j, 其中i, j满足1 =< i < j <= N且异或最大, 对于任意的2 <= x <= N, 考虑计算使得1 <= y < x且异或最大的异或的值, 可将插入一个只含有字符'0'和'1'的Tire树T中, 其中每个对应一个31位的二进串, 最高位对应字符串起始字符.
分类: 其他 发布时间: 11-09 23:32 阅读次数: 0

Trie树_POJ3764_The xor-longest Path

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83865344 点此打开题目页面 思路分析: 根据异或运算满足结合律和交换律, 且x XOR x = 0, x XOR 0 = x. 考虑选定题目中给定树的一点为树根r, 计算所有点到r的异或路径值, 设点i到根r的异或路径值为a, 点j到点根r的异或路径值为b, 那么点i到点j的异或路径值为a XOR b. 至此, 题目转换为计算若干个数两两异或
分类: 其他 发布时间: 11-09 23:32 阅读次数: 0

Trie树_POJ3630_Phone List

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83867351 点此打开题目页面 思路分析: 将输入字符串按照长度非递减排序, 然后直接应用Trie树即可, 具体见如下AC代码: //POJ3630_Phone List #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using nam
分类: 其他 发布时间: 11-09 23:31 阅读次数: 0

二叉堆_贪心_POJ1456_Supermarket

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83890185 点此打开题目页面 思路分析: 将所有商品按照保质期非递减排序得序列A[1...n], 设H为初始为空的最小堆. 执行下述伪代码所述贪心过程: for i = 1 to n if A[i]的保质期 > H.size H.push(A[i]的利润) else if A[i].利润 > H.top() H.pop(),
分类: 其他 发布时间: 11-09 23:31 阅读次数: 0

高精度计算_大整数_加_减_乘_除_大整数_基于vector_高效计算_模板

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83239134 本文给出的是, 相对偏重于计算效率的大整数运算模板, 代码数量整体多余前面介绍的基于deque的大整数计算模板, 当然如果仅需要大整数与int型运算, 那么请参考本人有关大整数和int型计算的博客. 为何称本文给出的高效计算的模板, 原因可概括为两点, 第一: 使用相比deque执行效率更高的vector(前提是在指定操作下), 第
分类: 其他 发布时间: 11-09 23:31 阅读次数: 0

高精度计算_大整数_加_减_乘_除_int型_模板_基于deque

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83239321 下面给出的是大整数加, 减, 乘, 除int型的模板: 约定: 下面的模板实现中a, b均为HEX进制数, 且a[0]为a的最高位 const int HEX = 1e9;//运算采取的进制 deque<int> operator + (const deque<int> &a, const int b){//a,b均为HEX进制
分类: 其他 发布时间: 11-09 23:30 阅读次数: 0

递归_算法分析_指导性介绍

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83272234 递归算法也即自身调用自身的算法, 通常调用自身是为求解规模更小的子问题, 但是每次递归调用编译器都要为之分配独立的内存空间(主要是栈空间). 通常如果能用循环求解, 那么不应使用递归, 因为递归在执行效率方面往往低于循环, 但是递归和循环均为一种强大的程序设计工具, 本人认为, 学算法(包括刷题)的终极目的就是为了强化自己设计和分析
分类: 其他 发布时间: 11-09 23:30 阅读次数: 0

ASP.NET 4.0配置文件中的ClientIDMode属性

ASP.NET4.0配置文件中的ClientIDMode属性来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=99时光流逝,我们心爱的ASP.NET也步入了4.0的时代,微软在ASP.NET4.0中对很多特性做了修改。比如我将要讨论的控件ID机制就是其中之一。在ASP.NET4.0之前我们总是要为控件的ClientID头疼,比如明明一个叫lblNam
分类: 编程语言 发布时间: 11-09 23:30 阅读次数: 0

递归_CH0301_递归实现指数型枚举_递归算法正确性证明范例

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83273327 点此打开题目页面 简而言之本题要求打印集{1, 2,..., n}的所有子集(打印时每个子集中的所有元素位于同一行, 每行中的元素递增打印, 空集对应空行) 先给出如下AC代码, 然后给出其正确性的形式化证明 //CH0301_递归实现指数型枚举 #include <iostream> #include <cstdio> #inc
分类: 其他 发布时间: 11-09 23:30 阅读次数: 0

递归_CH0302_递归实现组合型枚举_递归算法正确性证明范例

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83276758 点此打开题目页面 先给出AC代码, 然后给出程序正确性的形式化证明 //CH0302_递归实现组合型枚举 #include <iostream> #include <cstdio> #include <vector> using namespace std; int n, m; vector<int> choosn; void s
分类: 其他 发布时间: 11-09 23:30 阅读次数: 0

递归_CH0303_递归实现排列型枚举_递归算法正确性证明范例

版权声明:本文为博主原创作品, 转载请注明出处! https://blog.csdn.net/solider98/article/details/83277443 点此打开题目页面 先给出AC代码, 然后给出程序正确性的形式化证明. //CH0303_递归实现排列型枚举 #include <iostream> #include <cstdio> #include <vector> using namespace std; const int MAX = 1e2; int n; vector<
分类: 其他 发布时间: 11-09 23:29 阅读次数: 0

.svn文件太大解决办法

svn下载代码后一段时间.svn文件会很大,包含了各种备份文件,但是如果直接删除.svn文件里的内容的话再执行svn命令又会报错,所以我们可以采用tortoiseSVN自带的cleanup为文件夹瘦身 操作步骤:右键svn文件夹 ---> clean up ... ---> 勾选清理工作副本的状态(clean up working copy status) 以及清理原始副本(Vacuum pristine copies) ---> 确定 等一会儿就能完成瘦身了。
分类: 其他 发布时间: 11-09 23:29 阅读次数: 0

谨慎使用多线程中的fork

前言 在单核时代,大家所编写的程序都是单进程/单线程程序。随着计算机硬件技术的发展,进入了多核时代后,为了降低响应时间,重复充分利用多核cpu的资源,使用多进程编程的手段逐渐被人们接受和掌握。然而因为创建一个进程代价比较大,多线程编程的手段也就逐渐被人们认可和喜爱了。 记得在我刚刚学习线程进程的时候就想,为什么很少见人把多进程和多线程结合起来使用呢,把二者结合起来不是更好吗?现在想想当初真是too young too simple,后文就主要讨论一下这个问题。 进程与线程模型 进程的经典定义就
分类: 其他 发布时间: 11-09 23:29 阅读次数: 0