…
本来想用dp的,但是想了一下有点麻烦,
再说了第一题应该不至于这么难,应该是有规律的,所以找了一下
这道题用的是单调性求解
我们知道N是一个确定的数字。
a+b=N;
a只要确定了那么b也就确定了
然后下面的工作就是发现a的范围。
1:我们不难发现只要N-b是小于等于0的数,那么a就可以从零开始,到min(a,c)结束
2:如果N-b是大于0的数,那么a的开始的地方就应该是(n-b)的位置,到min(a,c)结束
所以说直接就出来了。
复杂度应该是O(1)的
include [HTML_REMOVED]
include [HTML_REMOVED]
include [HTML_REMOVED]
using namespace std;
int a,b,c;
int main()
{
cin >> a>>b>>c;
int t=c-b;
if(t<=0)
{
cout << min(a,c)+1;
}
else
{
int mi=c-b;
int w=min(c,a);
cout << w-mi+1;
}
}
…
同样想法