codevs1035

来源:互联网 发布:电子科大网络教育登录 编辑:程序博客网 时间:2024/04/27 19:51

题目地址:http://codevs.cn/problem/1035/

代码:

var a:array[0..2100,0..100]of double;next:array[0..2000]of longint;last,m,n,tn,i,j,re,co,st,l,e:longint;mi:double;beginfillchar(a,sizeof(a),0);readln(tn,n);m:=2000+n;for i:=1 to 2000 do a[i,0]:=tn;for i:=1 to n dobeginreadln(re,co,st);for j:=re to re+st do a[j,i]:=1;a[0,i]:=co;a[i+2000,0]:=1;a[i+2000,i]:=1;end;while true dobeginmi:=0;e:=0;for i:=1 to n doif a[0,i]>mi thenbeginmi:=a[0,i];e:=i;end;if e=0 then break;mi:=maxlongint;l:=0;for i:=1 to m doif (a[i,e]>0)and(a[i,0]/a[i,e]<mi) thenbeginl:=i;mi:=a[i,0]/a[i,e];end;last:=-1;for i:=0 to n doif (abs(a[l,i])>0)and(i<>e)thenbeginnext[i]:=last;last:=i;a[l,i]:=a[l,i]/a[l,e];end;a[l,e]:=1/a[l,e];for i:=0 to m doif (i<>l)and(abs(a[i,e])>0) thenbeginj:=last;while j<>-1 dobegina[i,j]:=a[i,j]-a[i,e]*a[l,j];j:=next[j];end;a[i,e]:=-a[i,e]*a[l,e];end;end;writeln(-a[0,0]/100:0:2);end.

0 0
原创粉丝点击