##SDNU- 1012.区间合并

Description
给定n个开区间,合并他们中的重合者,输出合并后的区间数量。
Input
第一行:n(1 <= n <= 1000)
第2至第n+1行:每行两个整数(不会超过int),第i行的两个整数表示第i-1个区间的左边界和右边界。
Output
合并后所剩余的区间数量。
Sample Input
3
1 3
2 5
6 7
Sample Output
2

这个看师哥的代码没看懂,然后看紫书的贪心的一些问题找到了一些思路,也不知道为什么以前的思路就是不对。
这题我就用了贪心思想。

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <cstdio>
using namespace std;
struct inter
{int left,right;int flag=1;//用来标记被合并的区间
}a[1005];
bool cmp (inter x,inter y)
{if (x.left!=y.left)return x.left<y.left;return x.right<y.right;
}//排序,让区间按照其左端点排序。
bool judge(int x,int y)
{if (a[y].left>=a[x].right)return false;//排序使得判断更简单。return true;
}
void Union(int x,int y)
{a[y].flag=0;a[x].right=max(a[x].right,a[y].right);//结合也更简单。
}
int main()
{int n;cin>>n;for (int i=0;i<n;i++)cin>>a[i].left>>a[i].right;sort(a,a+n,cmp);for (int i=0;i<n-1;i++){if (a[i].flag){for (int j=i+1;j<n;j++)if (judge(i,j))Union(i,j);}}int sum=0;for (int i=0;i<n;i++){if (a[i].flag)sum++;}cout<<sum<<endl;return 0;
}

SDNU-1012.区间合并相关推荐

  1. Awcing算法---区间合并

    #include <iostream> #include <algorithm> #include <vector> using namespace std; ty ...

  2. 树链剖分——线段树区间合并bzoj染色

    线段树区间合并就挺麻烦了,再套个树链就更加鬼畜,不过除了代码量大就没什么其他的了.. 一些细节:线段树每个结点用结构体保存,pushup等合并函数改成返回一个结构体,这样好写一些 struct Seg ...

  3. SPOJ GSS3-Can you answer these queries III-分治+线段树区间合并

    Can you answer these queries III SPOJ - GSS3 这道题和洛谷的小白逛公园一样的题目. 传送门: 洛谷 P4513 小白逛公园-区间最大子段和-分治+线段树区间 ...

  4. P3797 妖梦斩木棒 线段树区间合并

    题意: 1 x C 将第x个小段的木棒替换成C型,C只会是'X','(',')'中的一种 2 l r 询问妖梦从第l段到第r段之间(含l,r),有多少个完整的木棒 完整的木棒左右两端必须分别为'('和 ...

  5. POJ1456贪心(set或者并查集区间合并)

    题意:       给你n商品,每个商品有自己的价值还有保质期,一天最多只能卖出去一个商品,问最大收益是多少? 思路:       比较好想的贪心,思路是这样,每一次我们肯定拿价值最大的,至于在那天拿 ...

  6. poj 2892---Tunnel Warfare(线段树单点更新、区间合并)

    题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...

  7. [HDOJ3308]LCIS(线段树,区间合并)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3308 题意:给定n个数,两个操作: U A B:将位置A的数值改成B Q A B:查询[A,B]内最长 ...

  8. 线段树练习——区间合并

    这类题目会询问区间中满足条件的连续最长区间,所以PushUp的时候需要对左右儿子的区间进行合并(这里最难理解) hdu 3308 http://acm.hdu.edu.cn/showproblem.p ...

  9. Tunnel Warfare(HDU1540+线段树+区间合并)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目: 题意:总共有n个村庄,有q次操作,每次操作分为摧毁一座村庄,修复一座村庄,和查询与询问的 ...

  10. HDU - 5381 The sum of gcd(莫队/线段树区间合并)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,再给出 mmm 次询问,每次询问需要回答区间 [L,R][L,R][L,R] 内所有子区间的 gcdgcdgcd 之和.更具体的,对于询问 ...

最新文章

  1. 最全技术剖析:百度视觉团队获世界最大规模目标检测竞赛冠军
  2. ICCV2019最佳论文SinGAN全面解读,看这一篇就懂了
  3. 跨库查询(OpenDataSource)与链接服务器(Linking Server)
  4. 【ARM】Tiny4412裸板编程之按键
  5. 05.global_index_setting_index相关全局设置
  6. 0010服务器无对应信息,查看云服务器信息
  7. Java LocalDate类| getChronology()方法与示例
  8. arduino扩展板的使用_如何使用Arduino和React为烧烤构建仪表板
  9. 图像处理常用八大算法
  10. hnu 暑期实训之挖掘机技术哪家强
  11. dbscan和谱聚类_R 无监督聚类算法(1)K-means和层次聚类
  12. mysql+索引+rebuild_(solr系列:五) solr定时实时重建索引和增量更新
  13. 【海康威视】WPF客户端二次开发:【4】Chrome浏览器调用客户端程序
  14. MAC Pro开机密码忘记了怎么办?
  15. Freeway:Maximizing MLP for Slice-Out-of-Order Execution
  16. 微信小程序自定义tabbar以及闪烁问题
  17. 阿里云域名转京东云服务器配置图
  18. 内存类型UDIMM、RDIMM、LRDIMM大解析
  19. 不会写SQL?ChatGPT 来帮你
  20. 正则表达式中,表示匹配非数字字符的字符

热门文章

  1. IOS开发系列—Objective-C之内存管理
  2. sssdeeeeeeeeeeeee
  3. Lytro光场相机上手视频
  4. 伽马(Gamma)校正的原理及opencv实现
  5. java 设计模式实战,适配器模式之万物拟人化
  6. linux opencv 显示视频文件夹,opencv cvCaptureFromFile读取视频问题汇总
  7. Runtime error go fuck yourself
  8. 守破离——编程的三种境界
  9. matlab 画图添加图例时,改变图例中字体大小
  10. web前端开发经验总结