题解
2025-06-25 21:14:17
发布于:上海
64阅读
0回复
0点赞
首先,这题数据很水,所以直接暴力
大概就是检测最早的可使用的优惠券消耗掉如果没有就结果加上此次价格
直接上代码
#include<bits/stdc++.h>
using namespace std;
struct busub{
bool bsu;
int prc;
int tme;
};
int main(){
int n,ans=0;
cin>>n;
busub ubs[n+10];
for(int i=1;i<=n;i++){
cin>>ubs[i].bsu>>ubs[i].prc>>ubs[i].tme;
int tj=-1;
if(ubs[i].bsu){
for(int j=i-1;j>0;j--){
if(ubs[j].tme+45<ubs[i].tme)break;
if(!ubs[j].bsu&&ubs[j].prc>=ubs[i].prc)tj=j;
}
}
if(tj==-1)ans+=ubs[i].prc;
else ubs[tj].bsu=1;
}
cout<<ans;
return 0;
}
全部评论 1
注: 本人测试此代码仅需46ms
2025-06-25 来自 上海
0
有帮助,赞一个