社区讨论

TLE???全部???懵逼

P2278[HNOI2003] 操作系统参与者 5已保存回复 9

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
9 条
当前快照
1 份
快照标识符
@mi7yfcui
此快照首次捕获于
2025/11/21 05:39
4 个月前
此快照最后确认于
2025/11/21 05:39
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
struct node
{
	long long num;
	long long time;
	long long length;
	long long first;
	long long end;
}s[15001];
long long cnt=1,sum,timeo=1;

struct cmp
{
	 bool operator()(node x,node y)
	{
		if(x.first!=y.first)	return x.first<y.first;
		return x.time>y.time;
	}
};
priority_queue<node,vector<node>,cmp>q;

int main()
{
	while(scanf("%lld%lld%lld%lld",&s[cnt].num,&s[cnt].time,&s[cnt].length,&s[cnt].first))cnt++;
	s[cnt].time=99999999999;s[cnt].num=99999999999; 
	while(sum<cnt-1)
	{ 	sum++;
		q.push(s[sum]);
		while(!q.empty()&&timeo+s[q.top().num].length<=s[sum+1].time)
		{
			timeo+=s[q.top().num].length;
			printf("%lld %lld\n",q.top().num,timeo);
			q.pop();
		}
		if(!q.empty())s[q.top().num].length-=s[sum+1].time-timeo;
		timeo=s[sum+1].time; 
	}
	return 0;	
} 

回复

9 条回复,欢迎继续交流。

正在加载回复...