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.
复制代码

 

posted @   HansBug  阅读(307)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示