交汇的火力
来源:互联网 发布:macbook哪里下载软件 编辑:程序博客网 时间:2024/04/27 13:22
Description
小D正在玩CS,喜欢思考的他看到无数子弹从他眼前飞过时想到了一个奇怪的问题:这么多子弹在空中飞来飞去,难道它们不会相撞吗?当然这是可能的.小D把两颗子弹轨迹相交的地方叫做”火力汇点”,显然如果让敌人站在火力汇点上那么他将受到更严重的伤害.小D想知道平面上的所有火力汇点以便对敌人造成更重的打击,但是小D数学很差,所以他找到了你,请你帮他计算出平面上所有火力汇点的坐标.小D用直线来描述子弹的轨迹,这种子弹很特别,它发射后会迸裂成两颗并沿相反方向飞行(汗!!那不是打自己),小D数学很差(已知),只会用直线的一般式表示每条直线y=kx+b.
Input
n k1 b1 k2 b2 ......kn bn 第一行一个数n,表示直线数量 接下来n行,每行描述一条直线
Output
一个数,火力汇点的个数 若交点不存在请输出No Fire Point. (结尾有小点哦)
Sample Input
21 0-1 2
Sample Output
1
题解
如果两条直线有交点那么就可以得到k1x+b1=k2x+b2如果x有解那么就表示有交点。存储下每个x和y最后排序判重。
代码
var n,nm:longint; k,b:array [0..101] of longint; a:array [0..10001,1..2] of real;procedure qsort(l,r:longint);var i,j:longint; mid1,mid2:real;begin if l>r then exit; i:=l; j:=r; mid1:=a[(l+r) div 2,1]; mid2:=a[(l+r) div 2,2]; repeat while (a[i,1]<mid1) or (a[i,1]=mid1) and (a[i,2]<mid2) do inc(i); while (a[j,1]>mid1) or (a[i,1]=mid1) and (a[i,2]<mid2)do dec(j); if i<=j then begin a[0]:=a[i]; a[i]:=a[j]; a[j]:=a[0]; inc(i); dec(j); end; until i>j; qsort(i,r); qsort(l,j);end;procedure init;var i,j,kx,bx:longint;begin readln(n); for i:=1 to n do readln(k[i],b[i]); for i:=1 to n-1 do for j:=i+1 to n do begin kx:=k[i]-k[j]; if kx=0 then continue; bx:=b[j]-b[i]; inc(nm); a[nm,1]:=bx/kx; a[nm,2]:=(k[i]*a[nm,1])+b[i]; end;end;procedure main;var i,mn:longint;begin mn:=nm; for i:=2 to nm do if (a[i,1]=a[i-1,1]) and( a[i,2]=a[i-1,2]) then dec(mn); if mn=0 then writeln('No Fire Point.') else writeln(mn);end;begin init; qsort(1,nm); main;end.
1 0
- 交汇的火力
- 交汇的火力
- 火力++++++++
- 武装直升机的火力太猛啦!!!!!!
- Linux与人工智能的划时代性“交汇”
- Excel表格与数据库的交汇
- 探索频道-每分钟3000发的枪 ,火力强
- 七月火力
- 吸引火力
- 火力网
- 火力全开
- 位移动画移动过程中和父布局交汇的遮盖问题
- 第6章 光与影的交汇——Windows游戏动画技术
- 基于DSPC6678与FPGA协同处理的双目交汇视觉图像处理平台
- 漂亮MM拍照时需要注意的一些问题(火力增强版)
- 火力篮球游戏源码完整版--采用标准的游戏开发文档
- 火力电厂生产过程
- 火力网2
- Spring 加载 *.properties 文件的源码分析
- Swift3.0 label内容高度自适应
- DirectAccess 证书服务的安装与配置
- arm汇编指令之LDR 和 ADR的一些区别
- Maven实现直接部署Web项目到Tomcat7
- 交汇的火力
- 【opencup】XVI Open Cup named after E.V. Pankratiev. GP of SPB K.Captain Tarjan【树形dp】
- keras和caffe的区别(1)
- 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示
- PHP字符串word实现末字符大小互换
- java中static特殊性和final(static成员直接被访问,this不能用在static方法中,static不可访问非static)
- 你不一定知道的Android Studio中强大的快捷代码块
- bzoj2372: music(by lethalboy)
- LeetCode #203. Remove Linked List Elements