zoj3888

Posted 宣毅鸣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zoj3888相关的知识,希望对你有一定的参考价值。

题解:

维护比这个大的第二大

代码:

#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
int i,j,n,m,q,c;
struct node
{
    int a,b;
}p[50010];
bool cmp(node a,node b) 
{
    if(a.a!=b.a) return a.a>b.a;
    return a.b>b.b;
}
int sum[50010];
priority_queue<int, vector<int>, greater<int> > que;
int main() 
{
    while (~scanf("%d%d%d",&n,&m,&q))
     {
        while (!que.empty())que.pop();
        for (i=0;i<m;i++)scanf("%d%d",&p[i].a,&p[i].b);
        sort(p,p+m,cmp);
        sum[1]=0;
        int a1,a2;
        for (i=n,j=0;i>=2;i--)
         {
            for (;j<m;j++)
             {
                if (i<=p[j].a) que.push(p[j].b);
                else  break;
             }
            if ((int)que.size()<2)
             {
                sum[i]=0;
                continue;
             }
            a1=que.top();
            que.pop();
            a2=que.top();
            que.pop();
            que.push(a1);
            que.push(a2);
            if(i-a2<0) sum[i]=0;
            else sum[i]=i-a2;
         }
        while (q--)
         {
            scanf("%d",&c);
            printf("%d\n",sum[c]);
         }
     }
    return 0;
}

 

以上是关于zoj3888的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper 无法监听 3888 端口

线段树 BZOJ3888 [Usaco2015 Jan]Stampede

luogu3888 GDOI2014拯救莫里斯 (状压dp)

zookeeper集群启动报错:Cannot open channel to * at election address /ip:3888

zookeeper运维

hbase单机配置