算法设计沙龙---几何算法套餐
   
                       福州一中程序设计兴趣小组

  你了解几何吗?你了解几何算法吗?我们的沙龙将带领你进入几何的世界,进入计算机处理几何问题的领域。先请你思考以下几个问题,试试看你能否解决?

  一、判断点在多边形中的位置

  已知点P的X、Y坐标和一个N边形A1A2…An。判断点P在N边形的内部,外部或边上。

  输入:
  第1行输入N;
  第2行至第N+1行输入N边形各点的X、Y坐标;
  第N+2行输入P点X、Y坐标;

  输出:
  如果在内部,输出"NEIBU"
  如果在外部,输出"WAIBU"
  如果在边上,输出"BIAN"


二、Car的旅行路线

  问题描述
  又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。


  那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。

  任务
  找出一条从城市A到B的旅游路线,出发和到达城市中的机场可以任意选取,要求总的花费最少

  输入文件:键盘输入文件名
  输  出:到屏幕(输出最小费用,小数点后保留2位。)

  输入格式
  第一行为一个正整数n(0<=n<=10),表示有n组测试数据。
  每组的第一行有四个正整数s,t,A,B。
  S(0<S<=100)表示城市的个数,t表示飞机单位里程的价格,A,B分别为城市A,B的序号,   (1<=A,B<=S)。
  接下来有S行,其中第I行均有7个正整数xi1,yi1,xi2,yi2,xi3,yi3,Ti,这当中的(xi1,yi1),(xi2,yi2),(xi3,yi3)分别是第I个城市中任意三个机场的坐标,T I为第I个城市高速铁路单位里程的价格。

  输出格式
  共有n行,每行一个数据对应测试数据。

  样例输入
  1
  1 10 1 3
  1 1 1 3 3 1 30
  2 5 7 4 5 2 1
  8 6 8 8 11 6 3

  样例输出
  47.55

三、无线电测向

  问题描述
  一艘有天线定位装置的船能通过接收当地灯塔信号来确定自己的位置。每个灯塔固定在已知点上并发出特有的信号。当船检测到信号,它可通过旋转天线直到信号达到最大强度。这样就可确定自身与该灯塔的位置关系。只要接收到两个灯塔的信息,就有可能确定船当前的位置。

  编程任务
  通过一对灯塔信息来确定船的位置。
  灯塔和船的位置被确定在一个直角坐标系内。X轴正向指向东,Y轴正向指向北。船的航行路线从正北开始按顺时针用度表示。北是0°,东是90°,南是180°,西是270°。灯塔与船的位置关系用相对于船的航行方向顺时针用度表示。

  数据输入:输入数据由文件名为INPUT.TXT的文本文件提供。文件的第一行是一个整数,表示灯塔的数目N(N<=30)。以下N行,每行表示一个灯塔,为灯塔名称(名称是20个以下的字母),X坐标和Y坐标。它们都用空格隔开。

  灯塔信息下面是船的信息包括三行,一行是船的方向,其余两行是所接收到的灯塔信号。
  具体如下:
  输入数据          数据的含义
  方向             船的航行方向;
  名称1 角度1       第一个灯塔信息的名称,灯塔的方位;
  名称2 角度2       第二个灯塔信息的名称,灯塔的方位。

  灯塔的方位为船与灯塔所在的直线与船的航行方向的夹角(从船的航行方向开始顺时针,角度1=角度1+180)。2个数据用空格隔开。

  数据输出:将船的位置(精确到2位小数)。输出到OUTPUT.TXT文件中。如果无法确定船的位置,应输出"NO ANSWER"(不能使用小写)。

  输入文件示例
  5
  a 1 5
  b 1 1000
  c 2 4
  d 51 60
  e 153 79
  30
  e 160
  d 210

  输出

  160.83 123.41

四、监视摄像机

  [问题描述]
  一个著名的仓库管理公司SERKOI请你为其安装一套闭路监视系统,由于SERKOI财力有限,每个房间只能安装一台摄像机,不过其镜头可以向任何方向转换。
  请你写一个程序,对于给定的房间示意图,判断是否有可能在这个房间中的某一位置安置一台摄像机,使其能监视到房间的每一个角落。

  [输入格式]
  第一行是一个整数n(4<=n<=100),表示房间的示意图是一个n边形。以下n行,每一行给出一个顶点的坐标(xn,yn)。

  [输出格式]
  如果能找出安放摄像机的点则输出'OK!',否则输出'IMPOSSIBLE!'。

  [样例]

       

五、铁路连线问题

  皮亚琴查是意大利一个美丽的城市,有着丰富的旅游资源。该地的旅游景点又被分为N个自然景观和N个人文景观,为了方便游客,当地政府决定在每两个自然景观和人文景观之间增设一条铁路,也就是增加N条铁路。为了降低工程难度,他们要求铁路之间不能相交,现在你的手边有每个自然景观和人文景观的坐标。市长PIPPO要求你的程序给出一个可行的铁路连线方案。

  输入:
  第1行为一个数字N(0<N<10000);
  第2N+1行为N个自然景观的坐标,两个数字之间用空格隔开;
  第N+22N+1行为N个人文景观的坐标,两个数字之间也用空格隔开;
  输入数据保证有解。

  输出:
  输出数据包括N行,为一种可行解的方案。
  每行包括两个数据,即两个连线的景观的编号。

  0≤矩形数目<5000;
  坐标数值为整数,范围是[-10000,10000]。

六、音乐厅布置(Hall.pas/c/cpp)

  【背景】
  建成于1891年的纽约卡内基音乐厅(Carnegie Hall)音响效果绝佳,是世界最著名的音乐厅之一,它有很大的舞台,在这个音乐季,他们正准备演出莫扎特(Mozart)的歌剧《后宫诱逃(Die Entfuehrung aus dem Serail)》。剧中某些场景需要搭建一个土耳其皇宫,正如我们所熟悉的阿拉伯建筑风格,"皇宫"由一些高度、直径都相同的圆柱支撑,其中一些柱子和外墙相接,另一些在皇宫内部,所有外墙上的柱子向皇宫内的一侧的地面上都放有灯(假设灯放在柱子的圆心这个点上),灯光可以照射到皇宫内的任何部分,除非被东西遮挡。"皇宫"外围是灰白色的"石壁",就是两根柱子中间的部分,并且总在两根柱子圆心的连线上。墙壁都有一定的透光度,使得内部灯光散射出来,晶莹剔透。因为半透明,墙壁不太厚,相对于柱子的直径,我们忽略墙壁的厚度,如右图所示,灰色部分表示皇宫内部,蓝色部分表示柱子内部。皇宫的横截面总是凸多边形,上方有和横截面几何形状一模一样且厚度密度都均匀的平顶(图中线段围住的部分,即以各个外墙上的柱子的圆心为顶点的凸多边形)。演出时场景布置当然要富丽堂皇、尽善尽美,因此他们请天才的你来解决他们的一切问题。

  【问题】

  1、 舞台上不能放置太重的东西,柱子、墙壁都是用塑料等轻的材料做的,不能承重。而皇宫的平顶面积大,还是挺重的,不能直接压在这些材料上,只能通过舞台顶部的架子悬挂。当然,悬挂用的绳子是越细越少越好。他们提出一个大胆的想法,让你只用一根非常坚固的绳子,悬挂起整个屋顶。你的任务就是,找到平顶上一个恰当的点,使得从这个点可以把平顶平稳的吊起来。

  2、 布景时,布景师们在顶部的架子上走动,时常不小心碰到一些工具,掉下去砸坏了道具。因此,他们观察了几个经常放工具的点,并告诉你这些点在舞台上投影的位置,请你判断一下这些东西竖直掉下会对"皇宫"造成什么影响。某物品从某个点落下,如果恰好砸在柱子上(内),输出C;砸到墙壁上,输出L;砸到皇宫内空地,输出I;落到皇宫外,输出O;如果砸到物体的交界处,只需按照CLIO的顺序输出第一个。

  3、 演出时,录音师为演出制作环绕立体声录音。为了排除墙壁隔音的影响,他们在"皇宫"里的地面上也放置了几个麦克风。但为了不影响灯光照射,麦克风必须放在灯光照射不到的地方。出于声学的考虑,录音师建议了几个适合放置麦克风的位置,请你从光学的角度,分析一下其中那些位置可以放置,哪些不可以。如某个麦克风可以放置,那么输出1,否则输出0。

  我们用一个平面直角坐标系表示舞台地面,给你的数据包括:柱子总数、直径,"皇宫"高度,平顶厚度,每根柱子中心的坐标,以及问题2、问题3要判断点的坐标。
  如果你能完美解决了音乐厅面临的三个难题,演出后,你将被授予"最佳协作奖"

  【输入】

  第1行有四个整数,是柱子总数p、直径d、"皇宫"高度h1和平顶厚度h2,数据中间都用一个空格隔开。
  以下p行,每行有两个实数xi,yi,数据间用一个空格隔开,是第i根柱子的中心坐标。
  第p+2行是一个整数n,表示问题2要判定的顶点个数。
  以下n行,每行有两个实数xi,yi,是问题2要判定的第i个点的坐标,数据间用一个空格隔开。
  第p+n+3行是一个整数m,表示任务3要判定的顶点个数。
  以下m行,每行有两个实数xi,yi,数据间用一个空格隔开,是任务5要判定的第i个点的坐标,并保证这些点都在"皇宫"的可用空间内。

  【输出】

  第1行包含两个实数x,y,表示可以悬挂平顶的点的坐标,数据间用一个空格间隔,保留三位小数。
  第2行包括n个字母,是CLIO之一,表示问题2的结果,数据间用一个空格间隔。
  第3行,输出m个数,是0或者1,表示问题3的结构,数字间用一个空格间隔。

  【样例输入】

  7 1 110 10
  -3 3
  3 2
  -2 -2
  3 -1
  0 0
  1 1
  -1 1
  4
  -4 1
  -2 1
  0 0
  0 2.5
  2
  1 -1
  0.25 0.75

  【样例输出】

  0.015 0.545
  O I C L
  0 0

  以上问题你解决了吗?下面我们将以你参考的问题解决报告。

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有