loj10087
Southwestern Europe 2002,题面可参考 POJ 1201。
给定 n 个闭区间 [a_i,b_i] 和 n 个整数c_i 。你需要构造一个整数集合Z ,使得对于任意i (1<=i<=n),Z 中满足 a_i<=x<=b_i 的整数 x 不少于 c_i 个,求这样的整数集合 Z 最少包含多少个数。
简而言之就是,从 0~5E4 中选出尽量少的整数,使每个区间 [a_i,b_i] 内都有至少 c_i 个数被选出。
第一行一个整数 n,表示区间个数;
以下 n 行每行描述这些区间,第 i+1 行三个整数 a_i,b_i,c_i,由空格隔开。
一行,输出满足要求的序列最少整数个数。
对于全部数据,1<=n<=5e4,0<=a_i,b_i<=5e4。
______________________________________
区间型差分约束
________________________________________

1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=5e4+10;
4 struct edge
5 {
6 int u,v,w,nxt;
7 }e[maxn<<2];
8 int head[maxn],js;
9 void addage(int u,int v,int w)
10 {
11 e[++js].u=u,e[js].v=v;e[js].w=w;
12 e[js].nxt=head[u];head[u]=js;
13 }
14 int n;
15 int dis[maxn];
16 bool inq[maxn];
17 deque<int>q;
18
19 int spfa(int u)
20 {
21 q.push_back(u);
22 memset(dis,0xff,sizeof dis);
23 inq[u]=1;
24 dis[u]=0;
25 while(!q.empty())
26 {
27 int u=q.front();q.pop_front();
28 inq[u]=0;
29 for(int i=head[u];i;i=e[i].nxt)
30 {
31 int w=e[i].w,v=e[i].v;
32 if(dis[u]+w>dis[v])
33 {
34 dis[v]=dis[u]+w;
35 if(!inq[v])
36 {
37 if(!q.empty() && dis[q.front()]<dis[v])q.push_front(v);
38 else q.push_back(v);
39 inq[v]=1;
40 }
41 }
42 }
43 }
44 return dis[50001];
45 }
46 int main()
47 {
48 scanf("%d",&n);
49 for(int a,b,c,i=0;i<n;++i)
50 {
51 scanf("%d%d%d",&a,&b,&c);
52 addage(a,b+1,c);
53 }
54 for(int i=1;i<=50001;++i)
55 {
56 addage(i-1,i,0);
57 addage(i,i-1,-1);
58 }
59 cout<<spfa(0);
60
61 return 0;
62 }
loj10087的更多相关文章
- loj10087 Intervals
传送门 分析 我们设S[i]表示到第i个数为止一共有多少个数在集合Z之中,最终答案就是S[max]-S[min]的最小值.所以我们不难发现对于每一个[ai,bi]都表示S[bi]-S[ai-1]> ...
随机推荐
- 当layui与分页相遇--bootstrap何去何从
用了一段时间,感觉layui比bootstrap 方便了很多.在js操作上比bootstrap减少了许多的代码量. 今天遇到需要前台分页.当然,不是表格,如果是表格的话.使用yalui table和b ...
- LVS、Nginx和HAProxy区别
LVS.Nginx和HAProxy区别 LVS 优点: 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力.单台LVS负载均衡器,可支持上万并发连接. 抗负载能力强:是工作在网络4 ...
- 第十一章节 BJROBOT PS3 手柄控制【ROS全开源阿克曼转向智能网联无人驾驶车】
1.把小车架空平放在地板上. 2.用 USB 线将 PS3 蓝牙手柄连接至小车主控端,初次连接手柄上的 4 个红色指示灯会同时闪烁; 3.按下手柄中间的圆形配对键,然后等待红灯闪烁至停止. 4.此 ...
- MODBUS_RTU通信协议
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领域通信协议 ...
- vue中Echarts的使用-自选效果
由于项目要求使用数据图,于是我选择了我们的Echarts用来实现效果 一:全局安装Echarts npm install echarts --save(这个安装的是最新的版本有时候回报init未定义) ...
- Beta冲刺——第六天
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- slice,splice,split,unshift的用法
工作了很久始终对这4个用法处于混淆状态,今天写个帖子来警示下自己 // slice(start,end),从start值开始截取到end前的元素组成新的数组,不改变原数组 // slice(index ...
- CSS&&label_div
Css-div部分 本章主要内容 0.基础知识 1.CSS概述 2.CSS基础语法 3.CSS选择器 4.CSS主要属性 5.CSS核心机制-盒子模型 6.CSS重点和难点-定位 7.综合示例 基础知 ...
- php 二位数组 转一维数组
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_ ...
- 记一次使用Asp.Net Core WebApi 5.0+Dapper+Mysql+Redis+Docker的开发过程
#前言 我可能有三年没怎么碰C#了,目前的工作是在全职搞前端,最近有时间抽空看了一下Asp.net Core,Core版本号都到了5.0了,也越来越好用了,下面将记录一下这几天以来使用Asp.Net ...