随笔分类 - stl
1
摘要:operator 排序 pri 效果 > < greater 由大到小> > greater 由小到大< < less 由大到小< > less 由小到大
阅读全文
摘要:https://codeforces.com/problemset/problem/525/E每个仙女有三种情况,枚举一下,n对半分,使得复杂度变成o(k*3^(n/2))用map统计的时候,每次如果跑for的话会有很多重复的,这样可以直接存下来前缀和 for(auto i:mp){ for(int
阅读全文
摘要:这是我自认为写得比较好看的一个代码。就是简单的bfs,但是我用了map,使得整体非常好看 https://vjudge.net/contest/372814#problem/B #include <bits/stdc++.h> #define inf 2333333333333333 #define
阅读全文
摘要:http://47.95.147.191/contest/6/problem/A这个题气其实是比较巧妙的。如果选了第3个,就不能选2,4。假设3是最大的,如果选2必选4,选2了却不选4那么不如选3.如果最优解是选2,4,但是贪心的时候选了3,怎么弥补呢?把a[3]=a[2]+a[4]-a[3]再放到
阅读全文
摘要:sort的cmp函数只能写return a>b;或者return a<b;
阅读全文
摘要:#include #include #include #include #include #include #include #define inf 2147483647 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;im; void in(int &x){ int y=1;...
阅读全文
摘要:upper_bound1.temp=upper_bound(a+1,a+n+1,x)-b;temp表示在数组a中第一个大于x的位置 2.bool cmp(int a,int b){ return a>b;}temp=upper_bound(a+1,a+n+1,x,cmp)-b;temp表示在数组a中
阅读全文
摘要:lower_bound1.temp=lower_bound(a+1,a+n+1,x)-b;temp表示在数组a中第一个大于等于x的位置 2.bool cmp(int a,int b){ return a>b;}temp=lower_bound(a+1,a+n+1,x,cmp)-b;temp表示在数组
阅读全文
摘要:https://vjudge.net/problem/Gym-102141E 用set乱搞
阅读全文
摘要:Sort功能极强! 可以排string: sort(a.begin(),a.end()); 普通数组 结合结构体 逆序 而且贼快
阅读全文
摘要:mapmap虽然好用,但是,尽量不要用,它的常数很大。二分查找可以代替单调的bool map,栽了200分。
阅读全文
摘要:mapmap是不定长数组;map<int,bool>m;map<long long,int>m;map<const char*,double>m;->m["apple"]=6.66;类型都可以变
阅读全文
摘要:setset<int>s;s.count(a);判断是否在集合里s.insert(a);插入a
阅读全文
摘要:P2429 制杖题这个题用线性筛会WA一个点,因为这个题是给定的质数集,最大的质数会比当前的倍数大,就会出现上面的情况。怎办?判重用set啊!set+线性筛就过掉了。16ms
阅读全文
摘要:P3402 最长公共子序列经典问题LCS-->LIS 没有重复的值才可以这么做把第一数列转化成1~n,然后将第二个数列映射成1~n中的一些数,然后求第二个数列的LIS即可,然后用Bit求LIS,O(nlogN) //数据太大,考虑map #include<iostream> #include<cst
阅读全文
摘要:P1102 A-B数对用map过掉,可以当高效的桶排用,map<long long,int>m;意思是m[long long]==int;
阅读全文
摘要:priority_queue<int>q;//默认不递增q.size();//q中有几个元素q.pop();//删除队首q.top();//返回队首元素q.push();//在队列中插入一个元素 //这是由小到大
阅读全文
摘要:在队列中,q.empty()比q.size()要慢,如果可能就用q.size(); 比如spfa的 while(q.size()>0) better than while(!q.empty())
阅读全文
摘要:deque双端队列 deque <int>q; q.front(); q.back(); q.push_back(); q.push_front();
阅读全文
摘要:Vector,动态数组,很像优化之后的二维数组 V[1] 1 2 3 4 V[2] 52 5 5 1 4 1 每个后面都可以再push_back(); Vector<int>v[1000];
阅读全文
1