随笔分类 - ACM--STL
摘要:链接开两个队列 一个维护价格从大到小用来每次更新买油的价格 让每次都加满 如果当前价格比队列里的某价格低的话就更新 另开以优先队列维护价格由小到大来更新此时用的油是什么油价的 并减掉 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #define N 10001012 #define LL long long13 #define INF 0xfffffff14 const double eps .
阅读全文
摘要:1414破题 又逼着用stl 卡内存 trie树太耗了 水不过去用set存字符串 set可以自己按一定顺序存 且没有重复的 再用lower_bound二分查找字符串的第一次出现 接着往后找就行了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 1001010 setq;11 set::iterator it;12 int kk;13 string ys = "sun";14 char ss[22];1
阅读全文
摘要:1628题意不太好理解 求横黑条 和竖黑条共有多少个 注意1*1的情况 如果横向纵向都是1*1 算为一个 否则不算用了下vector 枚举找下 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 30010 9 vectorp[N];10 vectorq[N];11 int o1[N],o2[N];12 int main()13 {14 int i,j,m,n,k,x,y,t,sum=0;15 scanf("%d%d%d",&
阅读全文
摘要:1350这题没什么 就考一下map的用法吧 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 mapq; 8 int f[110]; 9 char s1[110][44],ss[45];10 int o[110],p[110];11 int main()12 {13 int i,j,n,k,t;14 scanf("%d",&n);15 for(i = 1; i (n-p[k+1]-t))43 printf("NO\n");44 ...
阅读全文
摘要:1613高端的东西lower_bounder函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置,且last的位置是越界的然后用map 把数映射成容器 可以简单查询到每个数出现的最前和最后位置 再与给出的L,R相比较 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 7001010 map >t;11 v
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4666先看一个求曼哈顿的帖子http://www.cnblogs.com/lmnx/articles/2479747.html然后用mulityset进行维护下就可以了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 60010 9 int w[N][10];10 int main()11 {12 int i,j,q,g,k;13 whil...
阅读全文
摘要:http://poj.org/problem?id=1442题意很难懂 题挺巧妙的 建立两个优先队列 一个从小到大 另一个从大到小 随时更新两队中的值 使其为1~i 和i+1~mView Code 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 int num[30010],op[30010]; 7 int main() 8 { 9 int n,m,i,j,k,g;10 while(cin
阅读全文
摘要:http://poj.org/problem?id=2442题解http://www.cnblogs.com/372465774y/archive/2012/07/09/2583866.html本来写的二维数组 ,直接対一维排序 不知道为嘛一直WA 只好该为一维的 就AC了View Code 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int num1[2005],num2[2005]; 8 bool cmp(int a,int b) 9 {10 return a>t...
阅读全文
摘要:http://www.cplusplus.com/reference/stl/http://net.pku.edu.cn/~yhf/UsingSTL.htm#include<set>View Code 1 #include<iostream> 2 #include<set> 3 using namespace std; 4 int main() 5 { 6 int i,j,n,a; 7 cin>> n; 8 set <int> h;//定义一个h 9 for(i = 1 ;i <= n ; i++)10 {11 cin >
阅读全文
摘要:http://www.cppblog.com/shyli/archive/2007/04/06/21366.htmlstl中的优先队列的模板:#include priority_queue q;(队头为大,top为大)这是按照从大到小的队列;priority_queue, greater > q;这是从小到大的优先队列;#include struct cmp { bool operator ()(const int &i,const int &j) { return i>j; } }; http://acm.sdut.edu.cn/sdutoj/pro...
阅读全文

浙公网安备 33010602011771号