笔记——最大重叠区间数
来源:互联网 发布:asp获取远程网页数据 编辑:程序博客网 时间:2024/06/10 20:39
#include <stdio.h>
#include <algorithm>
using namespace std;
//x为时间节点,flage标记开始节点为1,结束节点为-1,k(可以省略,题目有给定这个区间有几个时加上)记录这个时间节点有几个
struct node{
int x,flage,k;};
node e[5000];
bool cmp(node a,node b){
return a.x<b.x||a.x==b.x&&a.flage<b.flage;//时间节点靠前的先处理,结束时间与开始时间一致时,结束时间先处理,结束的可以腾出空间
}
int main(){
int n,E;
while(scanf("%d",&n)&&n){
int s,t,k;
E=0;
for(int i=0;i<n;i++)
{
scanf("%d %d %d",&s,&t,&k);
//将区间分为两个端点
e[E].x=s;
e[E].k=k;
e[E++].flage=1;
e[E].x=t;
e[E].k=k;
e[E++].flage=-1;
}
sort(e,e+E,cmp);
int sum=0,ans=0;
for(int i=0;i<E;i++){
sum+=e[i].flage*e[i].k;//flage为正时需要有k个区间重叠,flage为负时,有k个区间不再重叠
ans=max(ans,sum);//ans记录中间所需的最大区间
}
printf("%d\n",ans);
}
return 0;
}
#include <algorithm>
using namespace std;
//x为时间节点,flage标记开始节点为1,结束节点为-1,k(可以省略,题目有给定这个区间有几个时加上)记录这个时间节点有几个
struct node{
int x,flage,k;};
node e[5000];
bool cmp(node a,node b){
return a.x<b.x||a.x==b.x&&a.flage<b.flage;//时间节点靠前的先处理,结束时间与开始时间一致时,结束时间先处理,结束的可以腾出空间
}
int main(){
int n,E;
while(scanf("%d",&n)&&n){
int s,t,k;
E=0;
for(int i=0;i<n;i++)
{
scanf("%d %d %d",&s,&t,&k);
//将区间分为两个端点
e[E].x=s;
e[E].k=k;
e[E++].flage=1;
e[E].x=t;
e[E].k=k;
e[E++].flage=-1;
}
sort(e,e+E,cmp);
int sum=0,ans=0;
for(int i=0;i<E;i++){
sum+=e[i].flage*e[i].k;//flage为正时需要有k个区间重叠,flage为负时,有k个区间不再重叠
ans=max(ans,sum);//ans记录中间所需的最大区间
}
printf("%d\n",ans);
}
return 0;
}
阅读全文
0 0
- 笔记——最大重叠区间数
- 最大重叠区间大小
- 最大不重叠区间
- 最大区间重叠.
- hdoj1050 moving tables 贪心 最大重叠区间数
- 求最大重叠区间大小
- 贪心法——区间的最大覆盖数
- 【数字题3】最大重叠子区间
- 157 求最大重叠区间大小
- 英特尔—最大区间
- hdu 1050 最大重叠数(贪心)
- 区间重叠
- 区间中最大的数
- 区间中最大的数
- 面试题精选(69):求最大重叠区间大小
- 11776 - Oh Your Royal Greediness!(最大重叠区间)
- UVA 10535 - Shooter(扫描+几何+最大重叠区间)
- HDU 5124 lines 最大区间重叠点(离散化)
- 第十八节网络编程
- 如何掌握所有的程序语言
- Xshell------使用技巧
- Linux设备树语法详解
- axure
- 笔记——最大重叠区间数
- Git学习第二天
- 计算机体系结构
- PCL入门<一> 点云的数据结构
- 迭代器失效问题
- 一步步打造自己的通用上拉加载布局
- Deep Learning_deeplearning.ai(course1、2)简单总结
- 回朔算法
- 架构腐化之谜