首页 > 代码库 > poj 1201 Intervals(差分约束)
poj 1201 Intervals(差分约束)
Intervals
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 20775 | Accepted: 7859 |
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.
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
题意:告诉你n个区间,要在第i区间至少取ci个数,问所有区间总共至少去多少个数?
这题的构图很是巧妙,把每个边界看成节点,Xi表示0-i有多少个数被选上,则每个区间[li,ri]可以推出X[ri]-X[li-1]>=Ci,即:X[li-1]-X[ri]<=-Ci。
潜在不等式:
1、X[i]-X[i+1]<=0;
2、X[i+1]-X[i]<=0.
本题我多了一个离散化操作。
#include <iostream> #include <cstdio> #include <map> #include <queue> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int INF = 0x3f3f3f3f; const int maxn = 2000100; struct edge{ int u , v , d; edge(int a = 0 , int b = 0 , int c = 0){ u = a , v = b , d = c; } }e[maxn]; int head[maxn] , next[maxn] , cnt , n; int dis[maxn] , vis[maxn] , vt[maxn] , index; map<int , int> mp; struct interval{ int l , r , value; interval(int a = 0 , int b = 0 , int c = 0){ l = a , r = b , value = http://www.mamicode.com/c;>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。