题目要求 4908. 饥饿的牛 - AcWing题库
分析
需要注意的是:不能直接枚举天数,由于天数最大为10^14,1s的时间限制会TLE
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=100010;
typedef long long ll;
ll n,t;
ll d,b;
ll days;
ll len;
ll cur;
ll last;
ll res;
int main()
{
cin>>n>>t;
for(ll i=0;i<n;i++)
{
cin>>d>>b;
len=d-1-last;
days=min(cur,len);
res+=days;
last=d-1;
cur=cur-days+b;
}
res+=min(cur,t-last);
cout<<res<<endl;
}
另一种方法为统计不能吃草的天数,用总天数减去不能吃草的天数