思路:
分类,看是乘地铁还是公交,如果是地铁,就加上价值,如果是公交车,就如题模拟
C o d e Code Code:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33#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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复