一、题面分析
题目链接:奋发
题目分析:这里题目告诉我们给我们的有序单调不减数对。根据题意我们能够知道,A和B的值一定会从ai,bi到ai+1,bi+1,那么我们只需要找出每一次从ai,bi到ai+1,bi+1时A和B可能重复的次数就可以了,具体实现方法可以通过代码好好理解。
二、代码分析
#include <bits/stdc++.h>
using namespace std;
int t;
int n, m;
int l, r, tot;
long long ans;
int x[3000005], y[3000005], dx, dy;
void solve()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> x[i] >> y[i];
}
for (int i = 1; i <= n; i++)
{
l = min(x[i], y[i]); //找出这一对的最小值
r = max(x[i - 1], y[i - 1]); //找出前一对的最大值
if (l >= r) //这里不太好用语言解释,画个图理解一下吧
{
ans += l - r;
if (x[i - 1] != y[i - 1])
{
ans++;
}
}
}
cout << ans;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
solve();
}