摘要:
解题思路: 1:按区间左端点从小到大排序 2:遍历一遍。遍历的同时维护一个区间。 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef pair<int, int> PII; 4 void merge(vector<PII> &seg 阅读全文
posted @ 2020-06-30 21:20
kyk333
阅读(155)
评论(0)
推荐(0)
摘要:
离散化,特指整数的离散化,保序的。 保序是指小的小,大的大。 值的范围比较大,但是个数比较少 值域很大,但是比较稀疏,我们用到的只是相对关系 排序去重后,这个数的下标就是这个数映射的值 将它们映射到从0开始的自然数 unique函数返回去重后数组的尾端点 然后把返回值和结尾中间的所有部分删掉 ret 阅读全文
posted @ 2020-06-30 16:34
kyk333
阅读(206)
评论(0)
推荐(0)
摘要:
位运算: 第一个操作。 n的二进制表示中第k位数字是几 这里的第k位指的是,从右往左第0位,第1位,第2位 1:先把第k位数字移到最后一位 n>>k 2:看个位是几 x&1 结合起来就是n>>k&1 第二个操作: lowbit操作 lowbit(x)的作用是返回x的最后一位1 比如x=1010,那么 阅读全文
posted @ 2020-06-30 14:42
kyk333
阅读(222)
评论(0)
推荐(0)
摘要:
暴力做法 优化: 两个数组都是单调上升的 测试一个样例 3 6 9 13 15 1 4 7 10 14 目标值是22 应该输出 4 2 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 100010; 4 int a[ 阅读全文
posted @ 2020-06-30 14:00
kyk333
阅读(207)
评论(0)
推荐(0)
摘要:
快排的划分,归并排序的归并,之后的kmp都是双指针算法。 双指针算法的两大类: 指向两个区间或指向一个区间 双指针算法一般是这样的 双指针算法运用了某些单调性质,可以将暴力的O(n^2)优化到O(n) 先来一个小的问题热身,输入一行若干个用空格隔开的单词,然后依次每行输出一个单词。具体应用看这里ht 阅读全文
posted @ 2020-06-30 10:14
kyk333
阅读(428)
评论(1)
推荐(0)

浙公网安备 33010602011771号