摘要:
链接:http://poj.org/problem?id=3347题意:一系列正方形立着排列,正方形互不重叠,能贴着放就贴着,求俯视的时候能看到哪些正方形。思路:把正方形的重叠问题转化为线段相交问题。正方形投影到x轴上就是横着的那条对角线,如果把正方形边长扩大根号2倍的话,对角线长就是整数,便于处理。然后再来对线段长进行裁剪,如果某部分被遮住了的话,就去掉这部分。还有个重要的地方是求正方形的左边顶点的横坐标,对于某个正方形,假定他和前面的正方形都是贴着的,求出相应的横坐标,取最大,即可。#include#include#includeusing namespace std;struct squ 阅读全文
摘要:
链接:http://poj.org/problem?id=1039题意:给一段曲折的管道,管道宽度为1,从管口射入光线,管子不透光、不反射,求光线最远能射到的地方的横坐标,如果光线能完全穿过管子,也输出。思路:入射得最远的光线必然过管道的上下两个折点,由于数据量不大,所以可枚举两个折点得到一条直线。然后求直线与管道的交点。可以从左到右,通过比较在折点的横坐标处直线的纵坐标和对应折点纵坐标的大小来判断直线是与上下哪个管壁相交,然后求交点。最后取最大的横坐标值。#include#include#include#includeusing namespace std;int n;const int m 阅读全文