A50005.公交换乘 暴力解法
2025-07-03 20:58:14
发布于:河南
16阅读
0回复
0点赞
这道题数据非常水可以直接暴力
(我这是纯暴力足足用了600ms),用一个数组存优惠票的时间,用一个数组存优惠票的价格。
#include <bits/stdc++.h>
using namespace std;
int t[100005],m[100005];//时间和价格
void del(int x[],int a){
for (int i=a;i<=100000;i++){
x[i]=x[i+1];
if (x[i+1]==0) break;
}
}
int main(){
int n,a,b,c,ans=0,cnt=1;
cin>>n;
for (int i=1;i<=n;i++){
cin>>a>>b>>c;
if (!a){//地铁
t[cnt]=c;//时间
m[cnt]=b;//价格
cnt++;//优惠票的数量
ans+=b;
}
else{公交
bool flag=false;
for (int j=1;j<=cnt;j++){
if (c-t[j]<=45&&b<=m[j]){//优惠票可用
del(t,j);//删除优惠票
del(m,j);//同上
flag=true;
break;
}
}
if (!flag) ans+=b;//优惠票不可用
}
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个