![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
优先队列+单调队列
秋天的风--
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
展开
-
hdu 4557
#include #include #include #define N 1100 using namespace std; struct node { char s[20]; int power,num; friend bool operator if(a.power!=b.power) return a.power>b.power; return a.原创 2013-11-06 13:29:45 · 775 阅读 · 0 评论 -
hdu 4006
#include #include #include using namespace std; struct node { int num; friend bool operator return a.num>b.num; } }; int main() { int count,n,k,i; char s[3]; while(scanf("%d%d",&n,&k)!=EO原创 2014-03-04 11:29:09 · 458 阅读 · 0 评论 -
fzu 2124
#include #include #include #include #include #include using namespace std; #define N 30 char map[N][N]; struct node { double t; int x,y,f; friend bool operator return a.t>b.t;原创 2014-03-11 18:25:41 · 570 阅读 · 0 评论 -
nyoj 547 优先队列
#include #include #include//水杯盛水问题,用优先队列不断从最小的边缘开始 using namespace std; int n,m; #define N 400 int p[N][N]; struct node { int x,y,w; friend bool operator return a.w>b.w;//从小到大出队 }原创 2014-04-29 17:27:23 · 526 阅读 · 0 评论 -
poj 2823 单调队列
http://blog.pureisle.net/archives/477.html转载 2013-11-08 17:26:38 · 511 阅读 · 0 评论 -
poj 2823单调队列模板题
#include//每次要吧生命值长的加入,吧生命用光的舍弃 #define N 1100000 int getmin[N],getmax[N],num[N],n,k,a[N]; int main(){ int i,first,last; while(scanf("%d%d",&n,&k)!=EOF) { for(i=1;i scanf("%d",&a[i]); first=1;原创 2013-12-12 16:32:29 · 565 阅读 · 0 评论 -
poj 2823 单调队列
#include #define N 1100000 int minf[N],maxf[N],a[N],index[N]; int main() { int n,i,k,first,end; while(scanf("%d%d",&n,&k)!=EOF) { first=end=0; for(i=0;i scanf("%d",&a[i]); minf[first]=原创 2014-02-16 16:37:57 · 509 阅读 · 0 评论 -
poj 1724 最短路+优先队列(两个约束条件)
/*两个约束条件求最短路,用优先队列*/ #include #include #include using namespace std; #define N 110 struct node { int u,v,w,f,next; }bian[N*N*4]; int head[N],yong,money; void init() { memset(head,-1,sizeof(head)); yo原创 2014-08-04 11:41:31 · 776 阅读 · 0 评论 -
poj 2823 二分法+单调队列
#include #define N 1100000 int minf[N],maxf[N],a[N],index[N]; int mif(int f,int first,int end) { int mid; while(first mid=(first+end)/2; if(minf[mid]==a[f]) return mid; else if(minf[mid]>a[原创 2014-02-16 17:31:33 · 569 阅读 · 0 评论