2661: [BeiJing wc2012]连连看

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 483  Solved: 200
[Submit][Status]

Description

凡是考智商的题里面总会有这么一种消除游戏。不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏。我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y)的平方差x2-y2是一个完全平方数z2,并且y与z互质,那么就可以将x和y连起来并且将它们一起消除,同时得到x+y点分数。那么过关的要求就是,消除的数对尽可能多的前提下,得到足够的分数。快动手动笔算一算吧。

Input

只有一行,两个整数,分别表示a,b。

Output

两个数,可以消去的对数,及在此基础上能得到的最大分数。

Sample Input

1 15

Sample Output

2 34

HINT

对于30%的数据,1<=a,b<=100

对于100%的数据,1<=a,b<=1000

Source

题解:

好吧,最大费用最大流还是老老实实把费用取负吧。。。

各种不理解?怎么会是二分图呢?怎么这样简单粗暴就可以了?233

代码:

 const inf=maxlongint;
type node=record
from,go,next,v,c:longint;
end;
var e:array[..] of node;
pre,head,q,d,c1,c2:array[..] of longint;
v:array[..] of boolean;
i,j,n,s,t,l,r,mincost,tot,x,y,z,a,b,maxflow:longint;
function min(x,y:longint):longint;
begin
if x<y then exit(x) else exit(y);
end;
procedure ins(x,y,z,w:longint);
begin
inc(tot);
with e[tot] do
begin
from:=x;go:=y;v:=z;c:=w;next:=head[x];head[x]:=tot;
end;
end;
procedure insert(x,y,z,w:longint);
begin
ins(x,y,z,w);ins(y,x,,-w);
end;
function spfa:boolean;
var i,x,y:longint;
begin
fillchar(v,sizeof(v),false);
for i:=s to t do d[i]:=inf;
l:=;r:=;q[]:=s;d[s]:=;v[s]:=true;
while l<r do
begin
inc(l);if l= then l:=;
x:=q[l];v[x]:=false;
i:=head[x];
while i<> do
begin
y:=e[i].go;
if (e[i].v<>) and (d[x]+e[i].c<d[y]) then
begin
d[y]:=d[x]+e[i].c;
pre[y]:=i;
if not(v[y]) then
begin
v[y]:=true;
inc(r);if r= then r:=;
q[r]:=y;
end;
end;
i:=e[i].next;
end;
end;
exit(d[t]<>inf);
end;
procedure mcf;
var i,tmp:longint;
begin
mincost:=;maxflow:=;
while spfa do
begin
tmp:=inf;
i:=pre[t];
while i<> do
begin
tmp:=min(tmp,e[i].v);
i:=pre[e[i].from];
end;
inc(mincost,tmp*d[t]);
inc(maxflow,tmp);
i:=pre[t];
while i<> do
begin
dec(e[i].v,tmp);
inc(e[i xor ].v,tmp);
i:=pre[e[i].from];
end;
end;
end;
function gcd(x,y:longint):longint;
begin
if y= then exit(x) else exit(gcd(y,x mod y));
end; procedure init;
begin
tot:=;
readln(a,b);
s:=;t:=;
for i:=a to b do insert(s,i,,);
for i:=a to b do insert(i+b,t,,);
for i:=a to b do
for j:=a to b do
if (trunc(sqrt(abs(i*i-j*j)))=sqrt(abs(i*i-j*j))) and (i<>j) then
if gcd(trunc(sqrt(abs(i*i-j*j))),min(i,j))= then
insert(i,b+j,,-i-j);
end;
procedure main;
begin
mincost:=;
mcf;
writeln(maxflow>>,' ',-mincost>>);
end;
begin
assign(input,'input.txt');assign(output,'output.txt');
reset(input);rewrite(output);
init;
main;
close(input);close(output);
end.

BZOJ2661: [BeiJing wc2012]连连看的更多相关文章

  1. [BZOJ2661][BeiJing wc2012]连连看 费用流

    2661: [BeiJing wc2012]连连看 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1349  Solved: 577[Submit][ ...

  2. 【费用流】bzoj2661 [BeiJing wc2012]连连看

    将每个数拆点,互相连边,然后满足条件的数对之间互相连边,跑最大费用流,答案是流量和费用分别除以2. 一定要i->j.j->i都连上,否则可能会出现一个数在一边被选择了,在另一边的另一个匹配 ...

  3. 【BZOJ2661】[BeiJing wc2012]连连看 最大费用流

    [BZOJ2661][BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给 ...

  4. BZOJ 2661: [BeiJing wc2012]连连看 费用流

    2661: [BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭 ...

  5. BZOJ_2661_[BeiJing wc2012]连连看_费用流

    BZOJ_2661_[BeiJing wc2012]连连看_费用流 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规 ...

  6. 【bzoj2661】[BeiJing wc2012]连连看 最大费用最大流

    题目描述 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y ...

  7. 2661: [BeiJing wc2012]连连看

    Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y( ...

  8. bzoj 2661: [BeiJing wc2012]连连看

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #inclu ...

  9. [BeiJing wc2012]连连看(建模,最小费用最大流)

    前言 突然发现自己在图论①被dalao吊着打... Solution 看到数据范围1000,感觉可以直接枚举连边,然后新建两个点就好了. 注意要拆点,不然可能会死循环(过来人) 代码实现 #inclu ...

随机推荐

  1. C10K问题2

    http://blog.csdn.net/zhoudaxia/article/details/12920993 是时候让 Web 服务器同时处理一万客户端了,你不觉得吗?毕竟,现在的 Web 是一个大 ...

  2. 转载:为什么Linux不需要磁盘碎片整理

    转载自:www.aqee.net 如果你是个Linux用户,你可能听说过不需要去对你的linux文件系统进行磁盘碎片整理.也许你注意到了,在Liunx安装发布包里没有磁盘碎片整理的工具.为什么会这样? ...

  3. iOS 设置图片imageView圆角——对图片进行裁剪

    以前设置图片圆角总是把imageView设置成圆形,然后设置maskToBounds为YES,其实这样处理很消耗性能,图片多了之后比较卡,最好将图片进行裁剪后显示:这里有个分类可以用: UIImage ...

  4. devenv compile errors collection

    任务:使用 devenv commnd line 编译 VS 2010 工程. 使用 devenv 编译工程,要保证工程所需的 VC++目录 (VC++ Directories) 设置正确才能编译成功 ...

  5. 桶排序之python实现源码

    tmp = [] def bucket_sort(old): for i in range(len(old)): tmp.append([]) for i in old: tmp[int( i * l ...

  6. 一次plsql 问题记录

    环境 : window 7 x64  oracle 10.2g  plsql 10.0.5 问题是 新装的 oracle10.2 plsql 一直连接不上 ,oracle_home 配置都对 .sql ...

  7. session 保存在指定的数据表,cookie设置

    首先建立数据表,可在ThinkPHP/Extend/Driver/Session/SessionDb.class.php中copy代码 在配置文件中配置: 'SESSION_TYPE' => ' ...

  8. 如何用angularjs制作一个完整的表格之三__在ng-repeat中使用ng-model

    在ng-repeat中使用ng-model时会有许多问,有的人碰到无法获取绑定的数据内容,有的人遇到改动绑定的数据内容时所有循环生成的内容一起改变.上面的问题我在开发时也遇到过,但是解决后我却怎么也还 ...

  9. javascript 写策略模式,商场收银打折优惠策略

    [Decode error - output not utf-8] ----------------------------- 购物清单 方便面 : 100 x 50 = 5000 | 4000 菊花 ...

  10. html中th 与thead tbody的 使用

    上午工作的时候,遇到一挺纠结的问题,在<th width...> width根本不起作用. 后来才明白<th>标签不能写在<tbody>里,不符合语法. 所以顺便总 ...