题意:有n列预定航班,从st时刻开始出发,飞行时间为d,花费为p,且同一时刻不能有两个航班,求最大的花费

对航班的开始时间(或结束时间)按升序排序,从后往前找到对应结束时间所在的航班位置(如按结束时间排序则需要从前往后找到开始时间所在航班位置,需要使用二分法)

d[i]=max(d[j]+p)

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
typedef struct
{
int s;
int e;
int d;
int p;
}pl;
pl a[10005];
int d[10005]; int find(int x,int L,int n)
{
int l=L+1,r=n-1,mid=(l+r)/2;
while(l<r)
{
if(x>a[mid].s)l=mid+1;
else r=mid;
mid=(l+r)/2;
}
return a[mid].s>=x ? mid : mid+1;
} int cmp(pl a,pl b)
{
return a.s<b.s;
} int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&a[i].s,&a[i].d,&a[i].p);
a[i].e=a[i].s+a[i].d;
}
sort(a,a+n,cmp);
memset(d,0,sizeof(d));
for(int i=n-1;i>=0;i--)
{
d[i]=d[i+1];
int L=find(a[i].e,i,n);
if(d[L]+a[i].p>d[i])
d[i]=d[L]+a[i].p;
}
printf("%d\n",d[0]);
}
return 0;
}

最新文章

  1. 项目中运行报错: Loading XML bean definitions from class path resource [applicationContext.xml]
  2. 在嵌入式开发板中运行程序提示-/bin/sh: ./xx: not found的解决办法
  3. 微信公众平台中的openid是什么?
  4. 快速理解Docker - 容器级虚拟化解决方案
  5. 解决Strict Standards: Only variables should be passed by reference
  6. uCGUI窗口初始化过程
  7. 怎么把QQ我的收藏表情图片转移到另一台电脑上
  8. 不老的新丁 Python何以让人着迷
  9. CloudStack 4.2 新功能:集成SNMP进行系统监控(原理篇)
  10. 自己找到的一些比较实用比较好看的前端特效。很多是前面提供的jquery网站的
  11. HDU 2732 Leapin&#39; Lizards
  12. [DeeplearningAI笔记]Multi-class classification多类别分类Softmax regression_02_3.8-3.9
  13. Update修改方法判断该ID的数据是否超过24小时,超过不许修改
  14. U3D 设置帧率与垂直同步
  15. 最近读jdk源码一些基础的总结(有待后续深入)
  16. 【抓包分析】 charles + 网易mumu 模拟器数据包
  17. SCTF 2015 pwn试题分析
  18. 关于Cocos2d-x很多奇怪的报错
  19. 后台开发面试题(.net与java)
  20. 在VIEW引入CSS、JS文件

热门文章

  1. 把Go程序变小的办法
  2. UIImage图片处理
  3. boost 无锁队列
  4. BOOST 线程完全攻略 - 基础篇
  5. JS中面向对象的,对象理解、构造函数、原型、原型链
  6. asp.net 追加文本(追加写入记事本)
  7. feel倍儿爽
  8. iOS-OC-基础-NSArray常用方法
  9. Java IO5:管道流、对象流
  10. 跨平台渲染框架尝试 - GPU Buffer的管理(1)