去年MLE,今年TLE,优化后TLE,求调
查看原帖
去年MLE,今年TLE,优化后TLE,求调
955379
2211wang_han_lin楼主2024/7/21 22:46

去年MLE代码

#include<bits/stdc++.h>
using namespace std;
struct P {
	int t,n;
	int k[1000];
} p[100000];
int n,x[100000][1000];
int f(int t){
	int s=0;
	for(int i=0;i!=100000;i++){
		int l=0;
		for(int j=1;j!=x[i][0]+1;j++){
			l|=(t-86400<x[i][j]&&x[i][j]<=t);
			if(l==1)break;
		}
		s+=l;
	}
	return s;
}
int main() {
//	freopen("port.in","r",stdin);
//	freopen("port.ans","w",stdout);
	cin>>n;
	for(int i=0; i!=n; i++) {
		cin>>p[i].t>>p[i].n;
		for(int j=0; j!=p[i].n; j++) {
			cin>>p[i].k[j];
			x[p[i].k[j]][x[p[i].k[j]][0]+1]=p[i].t;
			x[p[i].k[j]][0]++;
		}
	}
    for(int i=0;i!=n;i++)cout<<f(p[i].t)<<endl;
	return 0;
}

今年TLE代码

#include<bits/stdc++.h>
using namespace std;
struct P{
	int t,x;
};
deque<P> q;
stack<P> st;
set<int> s;
int n,ans[100000],kmpt,kmpk,kmp;
int main() {
	cin>>n;
	for(int i=0;i!=n;i++){
		cin>>kmpt>>kmpk;
		for(int j=0;j!=kmpk;j++){
			cin>>kmp;
			q.push_back({kmpt,kmp});
		}
		while(!q.empty())if(q.front().t+86400<=kmpt)q.pop_front();else break;
		while(!q.empty()){
			s.insert(q.front().x);
			st.push(q.front());
			q.pop_front();
		}
		ans[i]=s.size();
		s.clear();
		while(!st.empty()){
			q.push_front(st.top());
			st.pop();
		}
	}
	for(int i=0;i!=n;i++)cout<<ans[i]<<endl;
	return 0;
}

优化后代码

#include<bits/stdc++.h>
using namespace std;
struct P{
	int t;
	set<int> x;
}kmpp;
deque<P> q;
stack<P> st;
set<int> s;
int n,ans[100000],kmpt,kmpk,kmp;
int main() {
	cin>>n;
	for(int i=0;i!=n;i++){
		cin>>kmpt>>kmpk;
		kmpp.x.clear();
		for(int j=0;j!=kmpk;j++){
			cin>>kmp;
			kmpp.x.insert(kmp);
		}
		kmpp.t=kmpt;
		q.push_back(kmpp);
		while(!q.empty())if(q.front().t+86400<=kmpt)q.pop_front();else break;
		while(!q.empty()){
			for(set<int>::iterator it=q.front().x.begin();it!=q.front().x.end();++it)
			s.insert(*it);
			st.push(q.front());
			q.pop_front();
		}
		ans[i]=s.size();
		s.clear();
		while(!st.empty()){
			q.push_front(st.top());
			st.pop();
		}
	}
	for(int i=0;i!=n;i++)cout<<ans[i]<<endl;
	return 0;
}

dalao求调.

如果@tall_buildin 看见了,就当没看到。

2024/7/21 22:46
加载中...