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]> ...
随机推荐
- JTable写入数据库内容
/*JTable中导入数据库数据. 创建2个Vector col和dat col存入字段名 dat存入数据内容. dbname=new JTable(dat,col); */package demo; ...
- Redis--部署操作
1.Redis 1.1 安装 当前ubuntu虚拟机中已经安装好了redis,以下步骤可以跳过 以后自己安装过程如下:redis下载链接:x 指的是版本号 http://download.redis. ...
- JS内存
内存是用来存什么的 通俗的来说呢,就是用来存 var let function const 声明的变量. 内存的大小 与操作系统有关,64位1.4G 32位0.7G. 为啥内存大小要这么设计,为啥不是 ...
- Let's Encrypt SSL证书申请
当前环境: 阿里云CoreOS 所绑定的域名,解析管理也在阿里这儿,在该文档中使用 example.com 作为示例. Docker 镜像 acme.sh:2.8.8 nginx 申请证书并使用 使用 ...
- pixi.js 自定义光标样式
pixi 介绍 Pixi是一个超快的2D渲染引擎,通过Javascript和Html技术创建动画或管理交互式图像,从而制作游戏或应用. 项目地址:https://github.com/pixijs/p ...
- python 3.6 导入c++dll所遇到的坑
1 返回值在c++里面为const char*,python 接收实际上为int类型 原因:python默认返回值为int 解决方法: import ctypes import os CUR_PATH ...
- Solon rpc 之 SocketD 协议 - RPC调用模式
Solon rpc 之 SocketD 协议系列 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 Soc ...
- 计算机考研复试 A+B
题目描述 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. 输入描述: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B ...
- LeetCode448-数组中消失的数字
题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能 ...
- 【Linux】在docker上部署grafana+zabbix监控实录
------------------------------------------------------------------------------------------------- ...