社区讨论

通过不了,但可以通过案例,怎么解决,求助各位大佬

P9241[蓝桥杯 2023 省 B] 飞机降落参与者 2已保存回复 6

讨论操作

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

当前回复
6 条
当前快照
1 份
快照标识符
@ltg06wki
此快照首次捕获于
2024/03/07 00:18
2 年前
此快照最后确认于
2024/03/07 15:52
2 年前
查看原帖
CPP
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int i,j,k,T,n,itemp,time=0;
	bool dp=true;
	int t[100001],d[100001],l[100001],b[100001];
	char p[10][4];
	cin >> T >> n;
	for( k=0; k<T; k++ ) {
		// b[i]是第i架飞机一定要起飞的时间 
		for( i=0; i<n; i++ ) {
			cin >> t[i] >> d[i] >> l[i];
			b[i]=t[i]+d[i];
		}
		//对b[i]开始排序,把最早起飞的时间放在开头,还有把对应的降落时间排序 
		for( i=0; i<n; i++ ) {
			for( j=n-1; j>i; j-- ) {
				if( b[j]<b[j-1] ) {
					itemp=b[j];
					b[j]=b[j-1];
					b[j-1]=itemp;
					itemp=l[j];
					l[j]=l[j-1];
					l[j-1]=itemp;
				}
			}
		}
		//如果积累的时间大于下一个飞机起飞的时间,就错 
		for( i=0; i<n-1; i++ ) {
			time+=l[i];
			if( time>b[i+1] ) {
				dp=false;
			}
		}
		if( dp==true ) {
			strcpy(p[k], "YES");
		}
		else{
			strcpy(p[k], "NO");
		}
	}
	for( i=0; i<T; i++ ) {
		cout << p[i] << endl;
	}
	return 0;
}

回复

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

正在加载回复...