BZOJ1121: [POI2008]激光发射器SZK

【传送门:BZOJ1121


简要题意:

  在一个平面直角坐标系中给出一个多边形,相邻边垂直且每条边与坐标轴平行,要求在所有顶点放置发射器或者接收器,每个发射器能发射光线,且方向为角平分线,可以在到达每条边后进行反射,每个接收器只能接受一个发射器的光线,求出最多能有多少对发射器和接收器


题解:

  结论题

  因为光线可逆,所以肯定不存在一个点同时被两个点射到,而且如果A能射到B,那么B也能射到A,所以答案就为n/2


参考代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
int x[110000],y[110000];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d%d",&x[i],&y[i]);
    printf("%d
",n/2);
    return 0;
}

 

原文地址:https://www.cnblogs.com/Never-mind/p/8690040.html