zoukankan      html  css  js  c++  java
  • 1121: [POI2008]激光发射器SZK

    1121: [POI2008]激光发射器SZK

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 574  Solved: 475
    [Submit][Status][Discuss]

    Description

    多边形相邻边垂直,边长为整数,边平行坐标轴。要在多边形的点上放一些激光发射器和接收器。满足下列要求: 1发射器和接收器不能放置在同一点; 2发射器发出激光可以沿壁反射,最终到达一个接收器; 3发射器只能沿角平分线发射激光。求:最多可放置多少对发射器和接收器?点数4<=n<=100000

    Input

    第一行给出一个数字N,代表有多少个点. 下面N行,用来描述点的坐标.其值在[-1000000,1000000]

    Output

    最多可放置多少对发射器和接收器

    Sample Input

    10
    1 1
    3 1
    3 -2
    -3 -2
    -3 0
    -1 0
    -1 -1
    2 -1
    2 0
    1 0

    Sample Output

    5

    HINT

    感谢YYD大牛贡献译文.

    Source

    题解:一道神奇的题目——想必学过物理竞赛的都该知道光路可逆,很明显要想光线停下来,只能落在另一个点上而不是在边上(HansBug:边上的话不就反射出去了嘛= =),然后由于光路可逆可知如果另一个光源在这个终点上的话,那么必然要恰好走相反的路线回到第一个光源处,所以很明显一个发射器将占用2个点,所以答案就是[N/2]

     1 /**************************************************************
     2     Problem: 1121
     3     User: HansBug
     4     Language: Pascal
     5     Result: Accepted
     6     Time:0 ms
     7     Memory:220 kb
     8 ****************************************************************/
     9  
    10 var n:longint;
    11 begin
    12     readln(n);
    13     writeln(n shr 1);
    14 end.
  • 相关阅读:
    我不喜欢的 Rust 特性 (之一) eager drop
    为 Windows Phone 8.1 app 解决“The type does not support direct content.”的问题
    输入10个互不相同的数字并分成5对,问有多少种分法。
    code wars quiz: toInteger
    my first emacs custom key binding
    http协议消息报头学习笔记
    移动端经常遇到的小bug
    js小技巧
    ajax
    js正则表达
  • 原文地址:https://www.cnblogs.com/HansBug/p/4474846.html
Copyright © 2011-2022 走看看