zoj1041 Transmitters

原创 2006年06月16日 13:39:00
  1. //zoj1041 Transmitters

  2. //Accepted 1041 C++ 00:00.00 424K

  3. #include <stdio.h>

  4. #include <math.h>

  5. #define MAXN 1000

  6. struct point {double x,y;}c;

  7. double r;

  8. double xmult(double x1,double y1,double x2,double y2){return x1*y2-x2*y1;}

  9. double dist(point p1,point p2){ return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}

  10.  

  11. void solve()

  12. {

  13.        int i,j,n,num,max,cnt;

  14.        double dx,dy,dt;

  15.        point pt,p[MAXN];

  16.        scanf ("%d",&n);

  17.        num = 0;

  18.        for (i=0; i<n; ++i) {

  19.               scanf ("%lf %lf",&pt.x,&pt.y);

  20.               if (dist(pt,c)<=r) p[num++] = pt;

  21.        }

  22.        if (num<=2){

  23.               printf ("%d/n",num);

  24.               return ;

  25.        }

  26.        max = 2;

  27.        for (i=0; i<num; ++i){

  28.               cnt = 1;

  29.               dy = p[i].y-c.y;

  30.               dx = p[i].x-c.x;

  31.               for (j=0; j<num; ++j){

  32.                      if (i==j) continue;

  33.                      if (xmult(p[j].x-c.x,p[j].y-c.y,dx,dy)>=0.0) cnt++;

  34.               }

  35.               if (cnt>max) max = cnt;

  36.        }

  37.        printf ("%d/n",max);

  38. }

  39.  

  40. int main()

  41. {

  42. #ifdef ONLINE_JUDGE

  43. #else

  44.        freopen("1041.txt","r",stdin);

  45. #endif

  46.        while (scanf("%lf %lf %lf",&c.x,&c.y,&r)!=EOF){

  47.               if (r<=0.0) break;

  48.               solve();

  49.        }

  50. #ifdef ONLINE_JUDGE

  51. #else

  52.        fclose(stdin);

  53. #endif

  54.        return 0;

  55. }

zoj1041 Transmitters

。。。
  • xinag578
  • xinag578
  • 2015年04月04日 10:34
  • 273

[ZOJ1041] Transmitters

【题目大意】   发射器的发射范围是一个半圆,圆心半径给出,角度任意。在平面上给出N个点,问发射器最多可以覆盖多少个。 【解题思路】    算夹角,排序,统计。 【源代码】#include #incl...
  • program_shun
  • program_shun
  • 2011年06月15日 20:49
  • 283

ZOJ1041 Transmitters

Transmitters Time Limit: 2 Seconds      Memory Limit: 65536 KB In a wireless network with mu...
  • wust_ZJX
  • wust_ZJX
  • 2015年07月09日 18:58
  • 550

zoj1041 Transmitters (叉积性质的应用)

叉积: (其值等于两向量组成的三角形的有向面积的两倍) AXB = A.x * B.y - A.y * B.x Vector Cross(Vector A, Vector B) { return(...
  • yew1eb
  • yew1eb
  • 2014年03月20日 14:45
  • 1504

ZOJ1041

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=41 先选出在圆内的点,然后枚举一个点与圆心连线,作为一个半径,然后枚...
  • qust1508060414
  • qust1508060414
  • 2016年03月01日 14:06
  • 125

POJ 1106 Transmitters (简单计算几何)

博客原文地址: Transmitters  题目大意:给你一个半圆的圆心跟半径,再给你N个点,半圆可以绕圆心旋转任意角度,求半圆最多可以覆盖的点的个数是多少。 解题思路:因为圆心是固定的...
  • xuechelingxiao
  • xuechelingxiao
  • 2014年09月15日 19:54
  • 790

zoj1041

图论题目,叉乘运算 # include struct node{ int x,y; }s[155]; int dist(int x0,int y0,int x1,int y1) { return...
  • mdd18703649811
  • mdd18703649811
  • 2014年04月16日 19:00
  • 295

Transmitters

点击打开链接 In a wireless network with multiple transmitters sending on the same frequencies, it is ofte...
  • zichuan123456
  • zichuan123456
  • 2012年04月08日 20:20
  • 301

【计算几何】Transmitters

O(N^2)的算法,0ms过。 Transmitters Time Limit: 1000MS   Memory Limit: 10000K Total Subm...
  • wu_yihao
  • wu_yihao
  • 2012年04月22日 15:54
  • 296

pku1106 transmitters

向量叉积,水过。 注意读入lf,千万别想我写了个llf..... #include #include #include using namespace std; const int MAX...
  • u011797284
  • u011797284
  • 2014年01月22日 21:01
  • 294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zoj1041 Transmitters
举报原因:
原因补充:

(最多只允许输入30个字)