BZOJ2661 连连看 (费用流)
把所有点拆成两个,将符合条件的两个点x,y连上边,流量为1,费用为-(x+y)。
做一遍最小费用最大流,最后ans div 2即可。
Program bzoj2661;
const INF=;
var last,next,p,cost,cap,q:array[..] of longint;
flag1,flag2:array[..] of boolean;
a,c,i,j,x,y,t,s,sum:longint;
b:array[..] of longint;
pd:array[..] of boolean;
d,ps:array[..] of longint;
function gcd(x,y:longint):longint;
begin
if y= then exit(x) else exit(gcd(y,x mod y));
end;
procedure add(x,y,f,c:longint);
begin
inc(sum); next[sum]:=last[x]; last[x]:=sum;
p[sum]:=y; q[sum]:=x; cost[sum]:=c; cap[sum]:=f;
end;
procedure adt(x,y,f,c:longint);
begin
add(x,y,f,c); add(y,x,,-c);
end;
procedure spfa;
var i,j,l,r:longint;
begin
for i:= to t do d[i]:=INF;
fillchar(pd,sizeof(pd),false);
l:=; r:=; pd[s]:=true; b[]:=s; d[s]:=;
while l<=r do
begin
i:=last[b[l]];
while i<> do
begin
if (cap[i]>) and (d[p[i]]>d[b[l]]+cost[i]) then
begin
d[p[i]]:=d[b[l]]+cost[i];
ps[p[i]]:=i;
if not pd[p[i]] then
begin
inc(r);
b[r]:=p[i];
pd[p[i]]:=true;
end;
end;
i:=next[i];
end;
pd[b[l]]:=false;
inc(l);
end;
end;
procedure minCmaxF;
var x,i,j,cc,f,min:longint;
begin
f:=; cc:=;
while true do
begin
spfa;
if d[t]=INF then
begin
writeln(f div ,' ',-cc div );
exit;
end;
min:=INF;
x:=t;
while x<>s do
begin
if cap[ps[x]]<min then min:=cap[ps[x]];
x:=q[ps[x]];
end;
x:=t;
while x<>s do
begin
dec(cap[ps[x]],min);
inc(cap[ps[x] xor ],min);
x:=q[ps[x]];
end;
cc:=cc+min*d[t];
f:=f+min;
end;
end;
begin
readln(a,c);
s:=;
for i:=a to c do
for j:=a to c do if (i<>j) then
begin
x:=trunc(sqrt(abs(i*i-j*j)));
if x*x<>abs(i*i-j*j) then continue;
if gcd(i,j)<> then continue;
add(i,j+c,,-(i+j));
end;
for i:=a to c do add(,i,,);
for i:=a to c do add(i+c,c*+,,);
s:=; t:=*c+;
minCmaxF;
end.
BZOJ2661 连连看 (费用流)的更多相关文章
- [BZOJ2661][BeiJing wc2012]连连看 费用流
2661: [BeiJing wc2012]连连看 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1349 Solved: 577[Submit][ ...
- BZOJ 2661: [BeiJing wc2012]连连看 费用流
2661: [BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭 ...
- 【费用流】bzoj2661 [BeiJing wc2012]连连看
将每个数拆点,互相连边,然后满足条件的数对之间互相连边,跑最大费用流,答案是流量和费用分别除以2. 一定要i->j.j->i都连上,否则可能会出现一个数在一边被选择了,在另一边的另一个匹配 ...
- BZOJ_2661_[BeiJing wc2012]连连看_费用流
BZOJ_2661_[BeiJing wc2012]连连看_费用流 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规 ...
- hdu-5988 Coding Contest(费用流)
题目链接: Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- POJ2195 Going Home[费用流|二分图最大权匹配]
Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22088 Accepted: 11155 Desc ...
- BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]
3130: [Sdoi2013]费用流 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 960 Solved: 5 ...
- 洛谷 1004 dp或最大费用流
思路: dp方法: 设dp[i][j][k][l]为两条没有交叉的路径分别走到(i,j)和(k,l)处最大价值. 则转移方程为 dp[i][j][k][l]=max(dp[i-1][j][k-1][l ...
- Codeforces 730I [费用流]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给两行n个数,要求从第一行选取a个数,第二行选取b个数使得这些数加起来和最大. 限制条件是第一行选取了某个数的条件下,第二行不能选取对应位置的数. ...
- zkw费用流+当前弧优化
zkw费用流+当前弧优化 var o,v:..] of boolean; f,s,d,dis:..] of longint; next,p,c,w:..] of longint; i,j,k,l,y, ...
随机推荐
- 下载模板,上传EXCEL
说道SAP里对EXCEL操作的大概就是上传,下载,显示了... 下载:(文档是通过SMW0上传的)注:如果下载的时候需要填充EXCEL的值,...请参考另一篇文档,OLE CALL METHOD CL ...
- mysql 添加字段、删除字段、调整字段顺序 转
ALTER TABLE — 更改表属性添加字段: alter table `user_movement_log`Add column GatewayId int not null default 0 ...
- js创建table表格
//js创建table表格var tr;var cell;for(var i=0;i<10;i++){ //创建一个tr tr=document.createElement('tr'); doc ...
- struts2视频学习笔记 19-20(手工编写代码实现所有方法和指定方法校验)
课时19 对Action中所有方法进行输入校验 1.手工编写代码实现对action中所有方法输入校验 通过重写validate() 方法实现, validate()方法会校验action中所有与exe ...
- idea tomcat +eclipse式的部署
使用习惯了eclipse, 还没开始使用maven, 使用idea 有些不太习惯,现在记录下来,以备忘. /*这一步在tomcat使用external source时,其实是不起作用的**/ a. ...
- qml ios长按晃动
WidgetModel.qml import QtQuick 1.0 ListModel { ListElement { icon: "Images/widget1.png"; g ...
- Jquery API Hybrid APP调研
http://jquery.cuishifeng.cn/source.html hybrid app Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间 ...
- iOS不显示状态栏(电池和信号栏)
//隐藏状态栏 - (BOOL)prefersStatusBarHidden { return YES; } 在viewcontroller里面加入
- [开发笔记]-获取歌曲ID3信息
ID3介绍: ID3,一般是位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息,ID3信息分为两个版本,v1和v2版. 获 ...
- 【转发】linux文件系统变为只读的修复
详细解决方法:http://smartmontools.sourceforge.net/badblockhowto.html 相关问题,更换硬盘:http://blog.chinaunix.net/u ...