题目

比赛开始,泽泽队率先发球。泽泽观察了四周,想怎么才能用最短的时间射门呢?
  射门的时间为距离2,而传球的时间是距离1。所以泽泽想找一条用时最少的射门路径,来打败足球流氓。
  足球流氓当然不会袖手旁观,他们会拦截。当泽泽队伍中的传球人、被传球人之间有某足球流氓并且他们在同一直线上时,传球不会成功,即不能这样传球。比如A(1,2)想传球给B(7,8),中间有个足球流氓C(3,4),则他们在同一直线,传球不成功。射门不受足球流氓影响。

题解

枚举所有点之间的路径,如果没有足球流氓就连一条边,边权即两点间距离。

然后SPFA跑一边

足球流氓判断方法

叉积为0,且足球流氓在两点中间

两点间距离

√((x1−x0)2−(y1−y0)2)√((x1-x0)^2-(y1-y0)^2)√((x1−x0)2−(y1−y0)2)

注意

射门不受足球流氓影响,且时间要*2
放边的数据不要太小,至少200000

时间复杂度

O(n3)O(n^3)O(n3)

代码

typerec=recordx,y,ne:longint;w:real;end;
varx0,y0,n,mm,i,j,k,l,t:longint;e:array[1..500000]of rec;a,b:array[1..500,1..2]of longint;d:array[1..500]of real;state,v:array[1..500000]of longint;ls:array[1..500]of longint;function m(x0,y0,x1,y1,x2,y2:longint):longint;
varx,y,xx,yy:longint;
beginx:=x0;xx:=x1;if x0<x1 then begin x:=x1;xx:=x0;end;y:=y0;yy:=y1;if y0<y1 then begin y:=y1;yy:=y0;end;if (x2>x)or(x2<xx)or(y2>y)or(y2<yy) then exit(1) elsem:=((x2-x0)*(y1-y0))-((x1-x0)*(y2-y0));
end;procedure spfa;
varh,t,x,y,l:longint;w:real;
beginh:=0;t:=1;state[t]:=1;d[1]:=0;while h<t dobegininc(h);l:=ls[state[h]];while l>0 dobeginx:=e[l].x;y:=e[l].y;w:=e[l].w;if d[x]+w<d[y] thenbegind[y]:=d[x]+w;if (v[y]=0)and(y<>n+1) thenbegininc(t);state[t]:=y;v[y]:=1;end;end;l:=e[l].ne;end;v[state[h]]:=0;end;
end;beginreadln(x0,y0,n,mm);fillchar(d,sizeof(d),$7f);for i:=1 to n doreadln(a[i,1],a[i,2]);for i:=1 to mm doreadln(b[i,1],b[i,2]);for i:=1 to n dofor j:=1 to n doif i<>j thenbeginl:=0;for k:=1 to mm doif m(a[i,1],a[i,2],a[j,1],a[j,2],b[k,1],b[k,2])=0 thenbegin l:=1;break;end;if l=0 thenbegininc(t);e[t].x:=i;e[t].y:=j;e[t].w:=sqrt(sqr(a[i,1]-a[j,1])+sqr(a[i,2]-a[j,2]));e[t].ne:=ls[i];ls[i]:=t;end;end;for i:=1 to n dobegininc(t);e[t].x:=i;e[t].y:=n+1;e[t].w:=sqrt(sqr(a[i,1]-x0)+sqr(a[i,2]-y0))*2;e[t].ne:=ls[i];ls[i]:=t;end;spfa;writeln(d[n+1]:0:0);
end.

1579 泽泽在巴西相关推荐

  1. 【SSLGZ 1579】泽泽在巴西

    问题描述 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好地方,具体好到什么程度要看泽泽人品.泽泽毫不犹豫地走了进去-- 泽泽来到了足球王国--巴 ...

  2. SSL 1579——泽泽在巴西

    Description 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好地方,具体好到什么程度要看泽泽人品.泽泽毫不犹豫地走了进去-- 泽泽来到了 ...

  3. 【2011.12.10普及模拟】泽泽在巴西

    题目描述 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好地方,具体好到什么程度要看泽泽人品.泽泽毫不犹豫地走了进去-- 泽泽来到了足球王国--巴 ...

  4. 【u252】泽泽在巴西

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好 ...

  5. SSL1579 泽泽在巴西(spfa)

    泽泽在巴西 Time Limit:10000MS  Memory Limit:65536K Total Submit:81 Accepted:29  Case Time Limit:1000MS De ...

  6. 泽泽在巴西_ssl1579_最短路

    题目描述 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好地方,具体好到什么程度要看泽泽人品.泽泽毫不犹豫地走了进去-- 泽泽来到了足球王国--巴 ...

  7. 泽泽在巴西(jzoj普及组模拟第三题)(超难)

    题目: 题目描述 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好地方,具体好到什么程度要看泽泽人品.泽泽毫不犹豫地走了进去-- 泽泽来到了足球王 ...

  8. [floyed][叉积][距离公式](JZOJ)泽泽在巴西

    题目描述 泽泽帮助了英国某街道尽量减少酸雨的伤害,街道办主任非常感激他,就把他领到一扇门前,告诉他这扇门能通往好地方,具体好到什么程度要看泽泽人品.泽泽毫不犹豫地走了进去-- 泽泽来到了足球王国--巴 ...

  9. SSL 1579——泽泽在英国

    Description 泽泽用了100000000000000000000 mod 10天的时间爬出了长城.长城的另一端是一条隧道,泽泽走了进去-- 泽泽不小心又到了英国.英国多雨,基本上隔2天就要下 ...

最新文章

  1. jquery 对框架自适应高度 兼容各种浏览器
  2. 旷视《人工智能应用准则》全文公布 提倡善用AI技术
  3. 手写自己的MyBatis框架-1.0 的不足
  4. edge无法上网dns_如何在Microsoft Edge中通过HTTPS启用DNS
  5. WPF 如何将IconFont图标转成Geometry
  6. 让我们回顾一下如何通过JDBC插入Clob或Blob
  7. linux QT 结束当前进程_Linux常用使用命令梳理
  8. ZK tree使用mold
  9. Mybatis集成日志与ehcache
  10. abaqus python二次开发攻略_Abaqus二次开发Python脚本二次开发
  11. 【Oracle】ORA-30042: Cannot offline the undo tablespace
  12. 医院管理系统(Java)
  13. android获取设备码,获取Android设备唯一标识码
  14. 百度竞价排名曝光_百度竞价排名和自然排名都是什么?
  15. 计算机没有进程管理器,win10系统任务管理器中没有进程的处理办法
  16. python并行编程 - 线程篇
  17. 关于图片大小超过div盒子的讨论——补充
  18. 基于python的明日方舟自动刷取理智的脚本(一)—— 初始化环境
  19. centos抓包使用
  20. 【Lintcode】1799. Sequence Summation

热门文章

  1. Introduce·艺术学核心期刊推荐之《文艺理论研究》
  2. 生命诚可贵,爱情价更高,若为自由故,两者皆可抛
  3. 变革加速,博睿数据赋能“中国智造”转型升级
  4. Java 求解左叶子之和
  5. 选择国企背景的期货公司开户
  6. 内置带so的APK为系统APK方法
  7. STM32F4_时钟系统精讲
  8. 「后台列表页设计原则和技巧」
  9. java爬虫面试题_Java 网络爬虫基础知识入门解析
  10. linux ftp lftp,linux下lftp替代ftp