社区讨论

MLE怎么处理

P3751 相遇问题参与者 2已保存回复 4

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@lo8smsj8
此快照首次捕获于
2023/10/27 23:54
2 年前
此快照最后确认于
2023/10/27 23:54
2 年前
查看原帖
源码(这个题想了一天了)
CPP
#include<iostream>
#include<cmath>
using namespace std;
long long n,m,k[1005];
long long position[105][10005],query1,query2;
long long judge[105][300005];
long long ans[10005];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=3000;j++){
			judge[i][j]=-1*i;
		}
	}
	for(int i=1;i<=n;i++){
		cin>>k[i];
		int a=0;
		for(int j=1;j<=k[i];j++){
			cin>>position[i][j];
			if(j>=2){
				a++;
				judge[i][a]=position[i][j-1];
				if(position[i][j-1]<position[i][j]){
					while(judge[i][a]<position[i][j]-1){
						judge[i][a+1]=judge[i][a]+1;
						a++;
					}
				}
				else if(position[i][j-1]>position[i][j]){
					while(judge[i][a]>position[i][j]+1){
						judge[i][a+1]=judge[i][a]-1;
						a++;
					}
				}
			}
			if(j==k[i]){
				judge[i][a+1]=position[i][k[i]];
			}
		}
	}
	for(int i=1;i<=m;i++){
		cin>>query1>>query2;
		int a=2;
		while(judge[query1][a]>=0&&judge[query2][a]>=0){
			if(judge[query1][a]>judge[query2][a]&&judge[query1][a-1]<judge[query2][a-1]){
				ans[i]++;
			}
			if(judge[query1][a]==judge[query2][a]){
				ans[i]++;
			}
			if(judge[query1][a]<judge[query2][a]&&judge[query1][a-1]>judge[query2][a-1]){
				ans[i]++;
			}
			a++;
		}
	}
	for(int i=1;i<=m;i++){
		cout<<ans[i]<<endl;
	}
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=10;j++){
			cout<<judge[i][j]<<' ';
		}
		cout<<endl;
	}*/	
	return 0; 
}
不过话说回来,这个题怎么没有人做啊QWQ

回复

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

正在加载回复...