- A+B Problem
- 2009-03-08 20:34:51 @
刚学了zkw的那个最小费用流算法,想不到在这里用上了。
不过时间有点小微:
在Vag 6K上:
编译通过...
├ 测试数据 01:运行超时...
├ 测试数据 02:运行超时...
├ 测试数据 03:答案正确... 680ms
├ 测试数据 04:运行超时...
├ 测试数据 05:运行超时...
├ 测试数据 06:答案正确... 524ms
├ 测试数据 07:运行超时...
├ 测试数据 08:运行超时...
├ 测试数据 09:运行超时...
├ 测试数据 10:运行超时...
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:20 有效耗时:1204ms
在Puppy上:
编译通过...
├ 测试数据 01:答案正确... 728ms
├ 测试数据 02:答案正确... 541ms
├ 测试数据 03:答案正确... 25ms
├ 测试数据 04:答案正确... 197ms
├ 测试数据 05:答案正确... 525ms
├ 测试数据 06:答案正确... 41ms
├ 测试数据 07:答案正确... 619ms
├ 测试数据 08:答案正确... 166ms
├ 测试数据 09:答案正确... 369ms
├ 测试数据 10:答案正确... 400ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:3611ms
这题卡时间啊。。。。。
大家碰不到puppy就别交了。。。
附上源代码:
program problem;
var
en,et,ec,eu,ep,ex:Array[0..250000] of longint;
dis:array[0..1000] of longint;
v:array[0..1000] of boolean;
i,j,k,n,m,w,cost,l:longint;
a,b,ans,left,right:longint;
function min(a,b:longint):longint;
begin
if a0)and not v[et[i]] and(dis[et[i]]+ec[i]=dis[no]) then
begin
d:=aug(et[i],min(m,eu[i]));
if d>0 then
begin
dec(eu[i],d);
inc(eu[ep[i]],d);
ex[no]:=i;
exit(d);
end;
end;
i:=en[i];
end;
ex[no]:=i;
exit(0);
end;
function modlabel:boolean;
var
d,i,j:longint;
begin
d:=maxlongint;
for i:=1 to n do
if v[i] then
begin
j:=en[i];
while j0 do
begin
if (eu[j]>0)and not v[et[j]] and(ec[j]-dis[i]+dis[et[j]]0 do
fillchar(v,sizeof(v),0);
until modlabel;
work:=cost;
end;
function solve(x,d:longint):longint;
var i,k,t,p,last,cost,lk:longint;
begin
fillchar(en,sizeof(en),0);
fillchar(dis,sizeof(dis),0);
k:=0; n:=2; t:=x; p:=0;
while x0 do
begin
k:=k+x mod 10;
x:=x div 10;
inc(p);
end;
n:=1; x:=t; l:=k+p+1; last:=1; cost:=1; lk:=0;
while x0 do
begin
k:=x mod 10;
for i:=1 to k do
begin
inc(n);
build(last,n,1,-cost);
build(n,last+k+1,1,0);
end;
cost:=cost*10;
inc(n);
if last1 then
begin
if lk
11 条评论
-
未命名刺客 LV 8 @ 2015-12-12 20:22:23
这**是什么
-
2015-05-06 19:11:22@
大神(精兵),膜拜
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz
orz -
2015-05-06 19:10:28@
orz
-
2014-12-23 16:16:17@
。 。 。 。 。 。 | | 。 。 。 。
-
2014-11-29 09:24:07@
大犇
-
2014-11-25 12:10:28@
犟
-
2014-07-31 20:36:53@
牛……掰……犇……
-
2013-08-14 10:21:53@
什么情况...
-
2013-08-09 21:41:49@
ORZ
-
2009-03-27 18:44:17@
您A+B用最小费用流?
-
2009-03-10 19:56:51@
** 牛**
rt
- 1
信息
- ID
- 1000
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 74382
- 已通过
- 28459
- 通过率
- 38%
- 被复制
- 220