尺取法其实是一种很简单的算法,思想原来也用过,但一直不知道。。这两天恰好做了两道有关尺取法的题,就来总结一下。 首先,什么是尺取法?尺取法通常是指对数组保存一对下标(起点、重点),然后根据实际情况交替推进两个端点直到得出答案的方法,因为这种方法像尺取虫的爬行方式所以得名。其实就是求在一个线性的数组上 ...
分类:
其他好文 时间:
2016-09-08 00:37:34
阅读次数:
158
原题链接:http://poj.org/problem?id=2739 题意:问一个数有几种方法用连续的素数和表示。 分析:其实就是很简单,先打表,然后对prime数组跑一波尺取法,如果==n就ans++。 代码: ...
分类:
其他好文 时间:
2016-09-03 06:20:26
阅读次数:
155
子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:5 子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:5 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次。 如2 8 8 8 1 1,所求子串就是2 8 ...
分类:
其他好文 时间:
2016-08-27 19:15:24
阅读次数:
267
题意:给出一个序列,问能找出多少个连续的子序列,使得这个子序列中第k大的数字不小于m。 分析:这个子序列中只要大于等于m的个数大于等于k个即可。那么,我们可以用尺取法写,代码不难写,但是有些小细节需要注意(见代码注释)。我觉得,《挑战程序设计》里的尺取法的内容需要好好的再回顾一下= =。 代码如下: ...
分类:
其他好文 时间:
2016-08-23 22:01:56
阅读次数:
171
题目地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=5510
思路:设两个指针l、r,对于字符串a、b、c,若a为b的子串则下次比较时可直接比较b,c。枚举r,依次比较s[l]--s[r-1]是否为s[r]的子串,若s[i]为s[r]的子串,则l++。否则答案更新为r。
#include
#include
#include
#include...
分类:
其他好文 时间:
2016-08-22 12:40:28
阅读次数:
168
1553: Good subsequence Description Give you a sequence of n numbers, and a number k you should find the max length of Good subsequence. Good subsequen ...
分类:
其他好文 时间:
2016-08-21 18:14:40
阅读次数:
136
题目链接:http://poj.org/problem?id=3061 题意:给n个正整数和一个数S,求出总和不小于S的连续子序列的长度的最小值,如果无解输出0; 我们可以用sum[i]表示前i项的和;然后二分枚举找答案即可时间复杂度为O(n*logn)的; #include<iostream> # ...
分类:
其他好文 时间:
2016-08-19 09:52:33
阅读次数:
115
题目大意:从给定序列里找出区间和大于等于S的最小区间的长度。 前阵子在zzuli OJ上见过类似的题,还好当时补题了。尺取法O(n) 的复杂度过掉的。尺取法:从头遍历,如果不满足条件,则将尺子尾 部增加,若满足条件,则逐渐减少尺子头部直到不满足条件为止,保存 尺子长度的最小值(尾部-头部+1)即可。 ...
分类:
其他好文 时间:
2016-08-18 21:24:48
阅读次数:
150
题目链接:http://codeforces.com/problemset/problem/660/C 尺取法 ...
分类:
其他好文 时间:
2016-08-15 14:32:52
阅读次数:
111
最近好像高频遇见三类题: 利用C++ STL会炒鸡机智+优雅的模拟... 尺取法... 二分搜索... 二分搜索是O(log(n))的,然后,要求询问内容在区间内单调。 UVALive 7292 Refract Facts 如题,求角度。 关于double的二分,如果不加break条件会死循环,然后 ...
分类:
其他好文 时间:
2016-08-10 06:21:24
阅读次数:
233