题意

给出一些闭区间(始末+代价),选取两段不重合区间使长度之和恰为x且代价最低

思路

相同持续时间的放在一个vector中,内部再对起始时间排序,从后向前扫获取对应起始时间的最优代价,存在minn中,对时间 i 从前向后扫,在对应的k-i中二分找第一个不重合的区间,其对应的minn加上 i 的cost即为出发时间为 i 时的最优解

代码

#include<bits/stdc++.h>
using namespace std;
int n, k;
struct EVE{
int st,ed,val;
EVE(){
}
EVE(int a,int b, int c){
st = a, ed = b, val = c;
}
};
int f,t,c;
vector<EVE> v[];
vector<int> minn[];
int tmp[];
bool cmp(EVE a, EVE b){
return a.st<b.st;
}
int main(){
scanf("%d%d",&n,&k);
for(int i = ;i<n;i++){
scanf("%d%d%d",&f,&t,&c);
if(t-f+ >= k) continue;
v[t-f+].push_back({f,t,c});
}
for(int i = ;i<=k;i++) sort(v[i].begin(),v[i].end(),cmp);
for(int i = ;i<=k;i++){
for(int j = v[i].size()-;j>=;j--){
if(j==v[i].size()-) tmp[j]=v[i][j].val;
else tmp[j]=min(v[i][j].val,tmp[j+]);
}
for(int j = ;j<v[i].size();j++){
minn[i].push_back(tmp[j]);
}
}
long long ans = 1e12;
for(int i = ;i<=k;i++){
if(v[k-i].empty()) continue;
for(int j = ;j<v[i].size();j++){
int ed = v[i][j].ed;
long long cost = v[i][j].val;
int le = , ri = v[k-i].size()-;
if(v[k-i][ri].st<=ed) continue;
int mid = le+ri>>;
while(le<ri){
mid = le+ri>>;
if(v[k-i][mid].st<=ed) le = mid+;
else ri = mid;
}
ans = min(ans, cost+minn[k-i][le]);
}
}
if(ans == 1e12) printf("-1");
else printf("%I64d",ans);
return ;
}

最新文章

  1. 阿里云VPS服务器,ROS内网穿透
  2. 设计模式之单例模式Singleton(三创建型)
  3. iOS正则表达式
  4. iOS之下拉放大,上推缩小,一个方法搞定
  5. laravel Ajax post方式的使用
  6. UVAoj 11324 - The Largest Clique(tarjan + dp)
  7. eclipse中hibernate逆向工程出错
  8. 基于linux2.6.38.8内核zImage文件的自解压详解
  9. codevs1796-最小完全图
  10. iOS 加载动态库报错问题
  11. 多云时代,海外微软Azure云与国内阿里云专线打通性能测试
  12. 使用jquery的方法和技巧
  13. Nginx HTTP 核心模块
  14. C语言之逆序数
  15. SpriteBuilder修改CCB文件中的子CCB文件需要注意的一个地方
  16. C connect实现Timeout效果(Linux)
  17. win32: 查询滚动条相关信息的注意事项
  18. loader 的理解
  19. dict的items()方法于iteritems()方法的不同
  20. 荣耀9少 gms core服务

热门文章

  1. python数据分析数据标准化及离散化详解
  2. jquery iframe取得元素与自适应高度
  3. Haar-like特征来龙去脉
  4. matlab截取图像
  5. 基于MSP430F2618的程控电压源
  6. php 常用正则表达 邮箱 手机号啥的
  7. 【MySQL】IN 的学习,以及和 EXISTS的区别
  8. ab webbench 网站测压解决
  9. [翻译向] 当flush privileges生效时
  10. C# 自定义特性(Attribute)详解