Intervals

Time Limit: 2000MS Memory Limit: 65536K

Total Submissions: 30971 Accepted: 11990

Description

You are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn.

Write a program that:

reads the number of intervals, their end points and integers c1, ..., cn from the standard input,

computes the minimal size of a set Z of integers which has at least ci common elements with interval [ai, bi], for each i=1,2,...,n,

writes the answer to the standard output.

Input

The first line of the input contains an integer n (1 <= n <= 50000) -- the number of intervals. The following n lines describe the intervals. The (i+1)-th line of the input contains three integers ai, bi and ci separated by single spaces and such that 0 <= ai <= bi <= 50000 and 1 <= ci <= bi - ai+1.

Output

The output contains exactly one integer equal to the minimal size of set Z sharing at least ci elements with interval [ai, bi], for each i=1,2,...,n.

Sample Input

5

3 7 3

8 10 3

6 8 1

1 3 1

10 11 1

Sample Output

6

这个题我看了很久都不懂得怎么建图。先粘个代码吧!

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define inf 99999
#define maxx 50005
struct edge
{
int u,v,w;
}edge[maxx];
int n;
int dist[maxx];
int l;//左端点的最小值
int r;//右端点的最大值 void bellman_ford()
{
int flag=1,t;
while(flag)
{
flag=0;
for(int i=1;i<=n;i++)
{
t=dist[edge[i].u]+edge[i].w;
if(dist[edge[i].v]>t)
{
dist[edge[i].v]=t;
flag=1;
}
}
for(int i=r;i>l;i--)
{
t=dist[i-1]+1;
if(dist[i]>t)
{
dist[i]=t;flag=1;
}
}
for(int i=r;i>l;i--)
{
t=dist[i];
if(dist[i-1]>t)
{
dist[i-1]=t;
flag=1;
}
}
}
} int main()
{
scanf("%d",&n);
r=1,l=inf;
int a,b,c;
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&a,&b,&c);
edge[i].u=b,edge[i].v=a-1,edge[i].w=-c;
if(a<l) l=a;
if(b>r) r=b;
dist[i]=0;
}
bellman_ford();
printf("%d\n",dist[r]-dist[l-1]);
return 0;
}

最新文章

  1. Window对象方法
  2. 【教程】Asset Server(联合开发)
  3. vue服务端渲染
  4. NAT123 解决80端口被封的问题
  5. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
  6. [设计模式] 5 单例模式 singleton
  7. Photoshop:路径填充边缘虚化问题
  8. libctemplate——C语言模块引擎简介及使用
  9. Multipath多路径冗余全解析
  10. POJ 2075 Tangled in Cables (c++/java)
  11. 5.6.1 Boolean类型
  12. jQuery.mobile.changePage() | jQuery Mobile API Documentation
  13. 从零开始的JS生活(三)——内置对象
  14. Flask连接数据库打怪升级之旅
  15. [UE4]Grab抓取
  16. Shell工具| 流程控制
  17. BZOJ.4340.[BJOI2015]隐身术(后缀数组 搜索)
  18. Gravitee.io docker-compose运行
  19. 20.Mysql锁机制
  20. DTCMS部署错误

热门文章

  1. 十九种Elasticsearch字符串搜索方式终极介绍
  2. 数据结构和算法(Golang实现)(13)常见数据结构-可变长数组
  3. 发布公开的pod
  4. AJ学IOS(43)之网易彩票底部自定义TabBar实现切换
  5. .NetCore程序在Linux上面部署的实现
  6. 漫画:工作这么多年,你居然不知道 Maven 中 Optional 和 Exclusions 的区别?
  7. JMeter在Mac下的安装
  8. 从零开始学AB测试:基础篇
  9. 详解 I/O流
  10. linux CVE-2019-14287 Sudo提权漏洞