SSL P1333 地鼠的困境
来源:互联网 发布:php兄弟连百度云 编辑:程序博客网 时间:2024/05/22 13:30
题目大意:
地鼠家族面临着一个新的威胁——猎食者。
地鼠家族一共有N个地鼠和M个鼠洞,每个都位于不同的(x, y)坐标中。假如有地鼠在发觉危险以后s秒内都没有回到鼠洞里的话,就可能成为老鹰的食物。当然了,一个鼠洞只能拯救一只地鼠的命运,所有地鼠都以相等的速度v移动。地鼠家族需要设计一种策略,使得老鹰来时,易受攻击的地鼠数量最少。
测试数据T<=50
n, m <= 100
题解:
这题就是一个裸的匈牙利,不过就是它的边判断加入
因为s秒后老鹰就要抓地鼠了,所以0~s*v是地鼠所能移动的范围。
所以我们暴力枚举出≤s*v的老鼠到地洞的边
然后跑匈牙利即可
代码:
const maxn=100;var map:Array [0..maxn+1,0..maxn+1] of boolean; cover:array [0..maxn+1] of boolean; link:array [0..maxn+1] of longint; x,y:array [0..maxn+1] of real; ans,i,j,t,n,m:longint; s,v,p,q:real;function find(x:longint):boolean;var q,i:longint;begin q:=0; for i:=1 to n do if map[x,i] and not(cover[i]) then begin q:=link[i]; link[i]:=x; cover[i]:=true; if (q=0) or find(q) then exit(true); link[i]:=q; end; exit(false);end;begin readln(t); while t>=1 do begin readln(n,m,s,v); fillchar(map,sizeof(map),false); s:=s*v; for i:=1 to n do readln(x[i],y[i]); for i:=1 to m do begin readln(p,q); for j:=1 to n do begin v:=sqrt(sqr(p-x[j])+sqr(q-y[j])); if v<=s then map[j,i]:=true; end; end; fillchar(link,sizeof(link),0); for i:=1 to n do begin fillchar(cover,sizeof(cover),false); find(i); end; ans:=0; for i:=1 to n do if link[i]>0 then inc(ans); writeln(n-ans); dec(t); end;end.
阅读全文
0 0
- SSL P1333 地鼠的困境
- SSL 地鼠的困境
- SSL 地鼠的困境
- SSL 1333 地鼠的困境 最大匹配
- SSL 1333_地鼠的困境_匹配
- 地鼠的困境
- SSL1333 地鼠的困境
- 地鼠的困境(SSL_1333)
- 1333 地鼠的困境
- 地鼠的困境_ssl1333_匹配
- 地鼠的困境 最大匹配
- 【SSLGZ 1333】地鼠的困境
- [二分图]地鼠的困境
- 地鼠的困境SSL1333 最大匹配
- 地鼠的困境 ssl1333(不一定对)
- SSL1333 地鼠的困境(最大匹配)
- 地鼠的困境 SSL_1333(最大匹配)
- 【CQYZ-vijos】P1333 舞伴的搭配(贪心算法)
- 验证表单控件
- jQuery库笔记3
- 使用 Spring 容器管理 Servlet
- 学习Hadoop第七课(HDFS的详细架构原理)
- java基础学习日志--Stirng内存案例
- SSL P1333 地鼠的困境
- 分布式系统架构演进
- 理解事务的4种隔离级别
- React 常见的面试题
- MediaMetadataRetriever获取视频第一帧失败
- hiberante三种状态的特征总结
- Python3.4 + selenium + Firefox 自动化测试环境!
- Oracle的nlssort函数
- vue请求数据,build文件没有dev-server.js解决办法