二叉堆与 ST 表
cc 提升ing 变优秀ing
有需要搜广推nlp实习生的部门吗?
展开
-
leetcode:378. 有序矩阵中第K小的元素(中等,堆)
题目:分析:代码:人。不能在个位置上跌倒两次,可是我真的跌倒了两次。学习库函数。哦,差点第三次跌倒,又看错题了,是查找第k小的元素。查找第X怎么的元素,一般都用到堆、暴力优先队列竟然过了:class Solution {public: int kthSmallest(vector<vector<int>>& matrix, int k) { priority_queue<int, vector<int>, greate原创 2020-11-29 12:28:56 · 77 阅读 · 0 评论 -
leetcode: 373. 查找和最小的K对数字(中等,堆)
题目:分析:看完题就感觉做过,但是还是没想出来,看到求前k个的最值,那么一般都是用到了堆。洛谷上的方法:‘差点走入一个误区,注意,各行是没有重复的。这么长时间:vector s = { t.first,t.second.first };这都不知道!!!代码:class Solution {public: struct cmp { bool operator() (const pair<int, pair<int, int> >& a, co原创 2020-11-28 21:53:21 · 91 阅读 · 0 评论 -
洛谷:P1878 舞蹈课(普及/提高-,stl,堆)
题目:分析:每次都需要看题解才能做出来!扫了几眼这个题解:代码:#include<bits/stdc++.h>using namespace std;string s;int m;int A[200005];struct node{ int x,y; int v; bool operator < (const node & n) const { if(v!=n.v) return v>n.v; return x>n.x; }};原创 2020-09-15 15:03:23 · 437 阅读 · 0 评论 -
洛谷:P1631 序列合并(普及+/提高,二叉堆与 ST 表)
题目:分析:看似简单,还挺复杂的吧。暴力+vector:#include<bits/stdc++.h>using namespace std;int m;int main(){ //priority_queue<int,vector<int>,greater<int> > q; cin>>m; int A[m]; vector<int> v; for(int i=0;i<m;i++) cin>>原创 2020-09-13 18:27:36 · 893 阅读 · 0 评论 -
洛谷:P1168 中位数(stl,二叉堆与 ST 表,普及+/提高 )
题目:分析:我只想到了在原有排序算法上进行优化修改来实现这个题。大佬stl:#include<bits/stdc++.h>using namespace std;int m;int main(){ cin>>m; vector<int> v; for(int i=0;i<m;i++) { int c; cin>>c; v.insert(lower_bound(v.begin(),v.end(),c),c); if(原创 2020-09-13 14:46:13 · 151 阅读 · 0 评论 -
洛谷:P3865 【模板】ST表(普及/提高- ,二叉堆与 ST 表)
题目:分析:想了想,好像之前有一道题的一小问涉及到了这个问题。当时好像用的是倍增什么的,反正用到了2的倍数相关的。还有dp。嗯,题解中也是这样。剩下的自己先尝试者写。不会,翻了翻之前的,果然是做过的。之前博客有一点又细想了一下,为什么先j后I:值的思考确实就是这样子的。代码:#include<bits/stdc++.h>using namespace std;int A[100005];int m,n;int A1[100005][100];void f(int原创 2020-09-13 12:27:34 · 152 阅读 · 0 评论