Intervals |
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 54 Accepted Submission(s): 34 |
Problem 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 endpoints 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 <= 50 000) - 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 <= 50 000 and 1 <= ci <= bi - ai + 1.
Process to the end of file. |
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 |
Author
1384
具体差分约束是什么东西 算法导论上讲的很清楚
本题重点就是如何建好图的模型
设s[i] 表示集合Z里面的元素在区间[ 0, i ]的个数,left, right 分别表示所有区间里面的最左端和最右端,dis[ ]数组存储源点到某点的最短路。则由题意得限制条件
一 、s[right + 1] - s[left] >= least 即 [left, right] 区间中个数不小于least
二 、0 <= S[i] - S[i-1] <= 1转换得 s[i + 1] - s[i] >= 0 && s[i] - s[i + 1] >= -1;
然后根据限制条件建图
|
Intervals (差分约束)
最新推荐文章于 2024-07-07 02:55:38 发布