P2107 小Z的AK计划 题解

题目传送门

分析

考虑一个贪心,由于 x i x_i xi 呈线性排列,我们一定要保证去到的机房越多越好,所以将 x x x 排序,每次前往最近的机房,如果可以 AK 则 AK,累加答案。

代码实现

我相信我的解法一定有漏洞,欢迎各位 dalao 来 hack。

#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
    int x=0,f=0;char ch=getchar();
    while(!isdigit(ch))f^=!(ch^45),ch=getchar();
    while(isdigit(ch))x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
    return f?-x:x;
}


int n,m,ans,pos;
int x[100005];
int t[100005];

signed main(){
    n=read();m=read();
    for(int i=1;i<=n;i++)x[i]=read(),t[i]=read();
    sort(x+1,x+n+1);
    for(int i=1;i<=n&&m;i++){
        m-=abs(x[i]-pos);pos=x[i];
        if(t[i]<=m)m-=t[i],ans++;
    }
    cout<<ans;
    //system("pause");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值