【差分约束系统】序列长度

  序列长度

【问题描述】

  有一个整数序列,我们不知道她的长度是多少(即序列中整数的个数),但我们知道在某些区间中至少有多少个整数,用区间 [ai,bi,ci]来描述它,[ai,bi,ci]表示在该序列中处于[ai,bi]这个区间的整数至少有ci个。现在给出若干个这样的区间,请你求出满足条件的最短序列长度是多少。如果不存在则输出 -1。

【文件输入】

   第一行包括一个整数n(n<=1000),表示区间个数;

   以下n行每行描述这些区间,第i+1行三个整数ai,bi,ci,由空格隔开,其中0<=ai<=bi<=1000 而且 1<=ci<=bi-ai+1。

【文件输出】

    文件输出只有一个整数表示满足要求序列长度的最小值。

【样例输入】

 5
 3 7 3
 8 10 3
 6 8 1
 1 3 1
 10 11 1

【样例输出】

 6

 

提示:

其中两个合法序列分别为(3,5,7,8,9,10) (3,4,6,8,9,10),长度都为6,不可能有比6更短的合法序列了.

注意:序列中不能有相同数字.

=================================

====================================

type
  pnode=^node;
  node=record
         x,v:longint;
         next:pnode;
       end;
  tnode=record
         a,b,c:longint;
       end;
var
  n:longint;
  ti:array[-1..1000]of tnode;
  map:array[-1..1000]of pnode;
  queue:array[1..200000]of longint;
  dist:array[-1..1000]of longint;
  times:array[-1..1000]of longint;
  v:array[-1..1000]of boolean;
procedure init;
begin
  assign(input,'sequence.in');
  assign(output,'sequence.out');
  reset(input); rewrite(output);
end;

procedure terminate;
begin
  close(input); close(output);
  halt;
end;

procedure ins(a,b,c:longint);
var
  p:pnode;
begin
  new(p);
  p^.x:=b;
  p^.v:=c;
  p^.next:=map[a];
  map[a]:=p;
end;

procedure spfa;
var
  l,r:longint;
  x:longint;
  p:pnode;
begin
  fillchar(v,sizeof(v),true);
  fillchar(dist,sizeof(dist),$7);
  dist[-1]:=0;
  v[-1]:=false;
  l:=0; r:=1;
  queue[1]:=-1;
  repeat
    inc(l);
    x:=queue[l];
    p:=map[x];
    while p<>nil do
      begin
        if dist[x]+p^.v=r;
end;

procedure main;
var
  i:longint;
  t:longint;
begin
  readln(n);
  for i:=1 to 1000 do map[i]:=nil;
  t:=0;
  for i:=1 to n do
    begin
      readln(ti[i].a,ti[i].b,ti[i].c);
      if ti[i].b>t then t:=ti[i].b;
      ins(ti[i].b,ti[i].a-1,-ti[i].c);
    end;
  for i:=1 to t do begin ins(i-1,i,1); ins(i,i-1,0); end;
  for i:=0 to t do begin ins(-1,i,0); end;
  fillchar(times,sizeof(times),0);
  spfa;
  writeln(dist[t]-dist[0]);
end;

begin
  init;
  main;
  terminate;
end.


 

你可能感兴趣的:(NOIP2011黎明前夕的黑暗,图论,output,input,bi,c)