Draw!
题目链接
https://vjudge.net/contest/406673#problem/A
解题思路
找几个情况试试(不考虑特殊情况,何为特殊情况……自己判断吧),发现与现在这组比分的最小值,上组比分的最大值之差有关,但是存在特殊情况,比如样例2,比如0,0;2,2,比如1,0;3,3……。
AC代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+100;
int n,a[N],b[N],ans=1;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
if(a[i]==a[i-1] && b[i]==b[i-1]) continue;//针对多个 0 0
ans+=max(0,min(b[i],a[i])-max(b[i-1],a[i-1])+1);
if(a[i-1]==b[i-1]) ans--;//针对相等的情况,额外-1;注意,判断的是前一组相等,则--。
}
cout<<ans<<endl;
return 0;
}
思维 文章被收录于专栏
思维题都会了,ACM金牌就稳了! 我骗你的!

