zoukankan      html  css  js  c++  java
  • [WOJ4354] 蜀石经

    题目链接:###

    点我

    题目分析:###

    大模拟,貌似(O(n^2))也可以卡常过,复杂度正确的做法是用优先队列维护。

    代码:###

    #include<bits/stdc++.h>
    #define N (100000+5)
    using namespace std;
    struct node{
    	int a;int t;int num;
    	friend bool operator < (node a,node b){
    		return a.num>b.num;
    	}
    }st[N];
    priority_queue<node>q;
    inline int read(){
    	int cnt=0,f=1;char c;
    	c=getchar();
    	while(!isdigit(c)){
    		if(c=='-') f=-f;
    		c=getchar();
    	}
    	while(isdigit(c)){
    		cnt=cnt*10+c-'0';
    		c=getchar();
    	}
    	return cnt*f;
    }
    int n,last,wait,ans;
    bool cmp2(node a,node b){
    	return a.a<b.a;
    }
    int main(){
    	n=read();
    	for(register int i=1;i<=n;i++) {
    		st[i].a=read();st[i].t=read();
    		st[i].t+=st[i].a;st[i].num=i;
    	}
    	sort(st+1,st+n+1,cmp2);
    	last=st[1].t;
    	for(register int i=2;i<=n;i++) {
    	 	if(st[i].a>=last) {
    	 		if(q.empty()) last=st[i].t;
    	 		else{
    	 			wait=last-q.top().a;
    	 			ans=max(ans,wait);
    	 			last=wait+q.top().t;
    	 			q.pop();
    	 			if(last<st[i].a) --i;
    	 			else q.push(st[i]);
    	 		}
    	 	}
    	 	else q.push(st[i]);
    	}
    	while(!q.empty()){
    		wait=last-q.top().a;
    	 	ans=max(ans,wait);
    	 	last=q.top().t;
    	 	q.pop();
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    Java EE部分-- 各框架对比与项目优化
    Java EE部分--Mybatis
    Java EE部分--MVC
    Java EE部分--Hibernate、Struts
    Java EE部分--spring(二)
    Java EE部分--spring(一)
    IO和NIOAIO
    JDK、 反射

    线程(二)
  • 原文地址:https://www.cnblogs.com/kma093/p/10331437.html
Copyright © 2011-2022 走看看