- 博客(7)
- 收藏
- 关注
原创 HDU - Cow Sorting (树状数组)
Cow Sorting题目链接: Cow Sorting题意给定一个大小为N的数组,数组为1~N的全排列,为使数组形成单调递增,需多次交换相邻的两个数,设Cost为交换x,y时的x+y。求最小Cost。思路首先,我们看到了逆序对,这样想到的肯定时树状数组了,树状数组可是解决逆序对的好手。这里还有一个问题,就每次交换都需要消耗,如果是普通的逆序对显然不行,因为通常做的...
2018-06-10 19:34:15 369
原创 模板 - 凸包
模板 - 凸包#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 300005;// 存储二维平面点struct ip { int x, y, i; ip(int x = 0, int y = 0) : x(x), y(y), i(0) { }...
2018-06-10 15:40:31 124
原创 笔记 - BM 算法
如果,你的人生,在未来的某一段路上会遇到多个非常大的教训,那么我们应该趋向于寻找最后的这两个坎,能够让我们前进的大小,明显是不同的,先考虑后面的点能让我们省下更多的弯路。以终为始 对优先从最后的一个字符开始比对,如果不相等,就跳到自己串中前一个出现的位置。 - 建立BC串//简易代码int* buildBC (char * P) { int * bc = new int ...
2018-06-07 16:40:40 127
转载 BM算法详解
原帖链接: BM算法详解来源在没有BM算法时,其原始算法是从后往前进行匹配,需要两层循环,判断以某个字符为结尾的子串是否和模式串相等,这种算法也称作暴搜;贴上代码:void BLS(string s, string p) { int s_len = s.size(), p_len = p.size(); int j = 0, i = 0; while ...
2018-06-07 16:39:49 2826
原创 笔记 - 计算几何一 (convex Hull)
计算几何一 (convex Hull)B.Extreme PointsExtremity 当一个点存在一条经过它的直线,并且无法将图形分为两块时,极点。判断极点的方法,判断这个极点是否存在于一个三角形的内部 Make all points of S as EXTRMEE For each triangle ▲ (p,q,r) For each s ∈...
2018-06-07 14:57:57 538
原创 TSOJ - 回文串 (Manachar变种)
回文串 (Manachar变种)题目链接: 回文串题意输入一个字符串。输出子串是回文串的个数。思路普通的Manacher算法求的是最长回文串其中的关键步骤就是res = max(res,p[i]-1)现在要求的是总共的回文子串,那么我们就只需将以每个字符为中心的回文串长度/2即可。代码#include <bits/stdc++.h>...
2018-06-05 19:28:24 270
转载 Trie树(字典树)
Trie树(字典树)原帖链接: 浅谈Trie树(字典树)一、引入字典是干啥的?查找字的。字典树自然也是起查找作用的。查找的是啥?单词。看以下几个题:给出n个单词和m个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。答:简单!map,短小精悍。好。下一个给出n个单词和m个询问,每次询问一个前缀,回答询问是多少个单词的前缀。答:map,把每...
2018-06-05 13:07:26 742
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人