题解:P9815 wbyblD
为了方便,题解中设当前点为
题解背景
发现自己玩 OI 快两年了还没有在你谷发过一篇题解,于是随便找了一道题做了一下来水一篇题解 qwq
题目大意
本题其实可以当作反弹来理解。
小球从最左侧 0 号点出发,用
题目解析
很容易发现,我们对每个点都进行枚举是一定会超时的。我们可以对当前点的反弹次数进行考虑。
我们维护一个变量(代码中为
若当前点的
由于
时间复杂度
代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
int t,n,a,b,bal,ans,flag;
signed main(){
scanf("%lld",&t);
while(t--)
{
scanf("%lld",&n);
bal=0;
ans=n+1;
flag=0;
for(int i=1;i<=n;++i)
{
scanf("%lld %lld",&a,&b);
if(flag==0)
{
if(bal<a)
{
ans=0;
flag=1;
}
else
{
bal=bal-a+b;
}
}
}
printf("%lld\n",ans);
}
return 0;
}