我是靠谱客的博主 时尚蓝天,这篇文章主要介绍(CSP2019·J T2)公交换乘【模拟】,现在分享给大家,希望可以做个参考。

在这里插入图片描述


思路:

分类,看是乘地铁还是公交,如果是地铁,就加上价值,如果是公交车,就如题模拟


C o d e Code Code:

#include <cstdio>
#include <iostream>

using namespace std;
 
int n,fs,sum,ans,k,number = 1 ;//number防TLE
int t[100001],price[100001],dl[100001],s[100001];
bool ok[100001];//记录票

int main ()
{
	scanf ("%d", &n);
	for (int i = 1; i <= n; ++i){
	  scanf ("%d%d%d", &fs, &price[i] ,&t[i]);
	  if (fs == 0){++sum;dl[sum] = price[i]; s[sum] = t[i];ans += price[i];}//地铁
	  if (fs == 1) {//公交
	  	k = 0;
		for (int j = number; j <= sum; ++j){
			if (ok[j]) continue; //用过票就跳过
			if(t[i] - s[j] > 45) number=j;//如题
            else if(dl[j] >= price[i]){
            	k = j;
            	ok[k] = 1;//记录
            	break;
            }		
		}
		if(k == 0)ans += price[i];//累加
		}
	}
	printf("%d",ans);//输出     	
}
	  

最后

以上就是时尚蓝天最近收集整理的关于(CSP2019·J T2)公交换乘【模拟】的全部内容,更多相关(CSP2019·J内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(136)

评论列表共有 0 条评论

立即
投稿
返回
顶部