zoj 1041_Transmitters_计算几何
来源:互联网 发布:手机签名设计软件 编辑:程序博客网 时间:2024/06/02 07:27
题目描述
以雷达心为圆心的半圆形雷达覆盖范围有多个点 雷达可旋转,求最多覆盖数(含在边界的)
思路
先用距离方程将肯定覆盖不了的点去掉,然后以每个点为边界用叉积求出左右两边的点数
注意边上的也算
#include <stdio.h>#include <cmath>#define maxn 800int rx,ry;double r;struct arr{ int x,y;}edge[maxn];int find(int x,int y){ double m=sqrt((x-rx)*(x-rx)+(y-ry)*(y-ry)); if (m>r) return 0; else return 1;}int find1(arr a,arr b){ return (b.x-rx)*(a.y-ry)-(a.x-rx)*(b.y-ry);}int main(){ while (~scanf("%d%d%lf",&rx,&ry,&r)&&r>0) { int n,l=0; scanf("%d",&n); for (int i=1;i<=n;i++) { int x,y; scanf("%d%d",&x,&y); edge[++l]=(arr){x,y}; if (!find(x,y)) l--; } int ans=0; for (int i=1;i<=l;i++) { int x=0,y=0; for (int j=1;j<=l;j++) { int t=find1(edge[i],edge[j]); if (t>=0) x++; else if (y<=0) y++; } if (ans<x) ans=x; if (ans<y) ans=y; } printf("%d\n",ans); }}
1 0
- zoj 1041_Transmitters_计算几何
- ZOJ 1041 Transmitters(计算几何)
- zoj 1041 计算几何 叉积运用
- zoj计算几何
- ZOJ 3203 计算几何+三分
- ZOJ 3728 Collision (计算几何)
- ZOJ 3728 Collision 计算几何
- [计算几何] zoj 3728 Collision
- zoj 3728 Collision 计算几何
- ZOJ 3107 Counting Squares//计算几何
- ZOJ 1721 The Doors dijstra+计算几何
- ZOJ 3570 Lott's Seal 计算几何
- 【计算几何】ZOJ 2967 Colorful Rainbows
- 【计算几何】ZOJ 2976 Light Bulbs
- zoj 3203 Light Bulb(计算几何)
- ZOJ-3414-Trail Walk_计算几何
- [ZOJ 2287][Vjudge 40177] Shuttlecock [计算几何]
- ZOJ 1696 Viva Confetti 计算几何
- Ubuntu14.04 安装opencv(2.4以上)
- JavaScript全局函数eval的用法
- 斯坦福机器学习网易公开课笔记12
- Linux学习笔记-文件目录管理(鸟哥7章)
- 《一本书读懂TCP/IP》读后感——第二章 TCP/IP网络组成
- zoj 1041_Transmitters_计算几何
- MVC框架显示层——Velocity技术
- "Expression of type "UIViewController?" is unused".
- Xamarin绑定微信SDK 实现分享功能
- POJ 2996 模拟,读题
- TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
- 转:在 Ubuntu 上使用 Nginx 部署 Flask 应用
- UIScrollView详解
- 最短路径问题---Floyd算法详解