SSL-ZYC 洛谷P1496 火烧赤壁

题目大意:
给出n个数,从a到b的船只被烧毁,求出所有被烧毁的船只数量。


思路:

离散化

很明显是一道离散化的题,基本可以算是模板题了。


代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int x[20001],y[20001],a[50001],n,m,sum;

int main()
{
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
    {
        scanf("%d%d",&x[i],&y[i]);
        a[++m]=x[i];
        a[++m]=y[i];  //记录每个点
    }
    sort(a+1,a+1+m);  //排序
    for (int i=1;i<=m;i++)
     for (int j=1;j<=n;j++)
      if (a[i]>x[j]&&a[i]<=y[j])   //在范围之内
      {
        sum+=a[i]-a[i-1];  //记录答案
        break;  //退出循环
      }
    printf("%d\n",sum);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/ssl_zyc/article/details/80030473