携程第二场预赛 1003:位图像素的颜色(水题,判断点是否在矩形内)

位图像素的颜色

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 4   Accepted Submission(s) : 4

Font: Times New Roman | Verdana | Georgia

Font Size:  

Problem Description

有一个在位图上画出矩形程序,一开始位图都被初始化为白色(RGB颜色表示为R=G=B=255)。该程序能够按照顺序绘出N个矩形。新绘制的矩形能够覆盖位图上原有的颜色。程序执行完毕后,需要查询M个点的颜色,输出这些点的RGB值。

每组数据都是在初始化后开始绘制。

Input

第一行包含参数N和M,分别表示矩形个数和需要查询的像素个数(1 ≤N, M≤ 1000 );
剩下N行每行包含7个参数x1, y1, x2, y2, r, g, b,表示绘制一个(x1,y1),(x2,y2)为顶点的矩形,填充颜色为RGB(r, g, b),其中x1≤x2, y1≤y2数据在整型范围;0≤ r,g,b ≤ 255;
最后M行分别包含参数X和Y,表示需要查询的像素位置。
如果某行N=M=0就表示输入结束。

Output

对于每个用例,按行输出查询的像素的RGB值,每行包含3个整数,分别表示RGB值。

Sample Input

1 2

0 0 2 3 127 196 200 

1 2

3 0

2 3

8 16 32 64 0 255 128 

8 48 32 64 255 0 0 

12 47

13 48

14 64

0 0

Sample Output

127 196 200

255 255 255

0 255 128

255 0 0

255 0 0

Source

CodingTrip - 携程编程大赛 (预赛第二场)
 
  水题,稍微沾了一点计算几何的边
  这道题用20分钟就能做出来,我却做了30分钟,一开始觉得要用到判断点是否在多边形内,所以直接套上了一个大模板,后来发现根本不用那么复杂,判断点是否在矩形内直接判断点的上界下界是否超出就行了。
  比赛就要看手速啊!早知道这道题这么简单怎么说也能杀入决赛了!
  代码
 1 #include <iostream>

 2 using namespace std;  3 struct Point{  4     double x,y;  5 };  6 struct Plg{  7  Point p1,p2;  8     int r,g,b;  9 }; 10 int main() 11 { 12     int n,m; 13     while(scanf("%d%d",&n,&m)!=EOF){ 14         if(n==0 && m==0) break; 15         Plg pl[1010];    //多边形

16         int i,j; 17         for(i=1;i<=n;i++)    //输入多边形及颜色

18             scanf("%lf%lf%lf%lf%d%d%d",&pl[i].p1.x,&pl[i].p1.y,&pl[i].p2.x,&pl[i].p2.y,&pl[i].r,&pl[i].g,&pl[i].b); 19         for(i=1;i<=m;i++){ 20  Point t; 21             scanf("%lf%lf",&t.x,&t.y); 22             int r=255,b=255,g=255; 23             for(j=1;j<=n;j++){ 24                 if(pl[j].p1.x<=t.x && t.x<=pl[j].p2.x && 

25                    pl[j].p1.y<=t.y && t.y<=pl[j].p2.y){    //在多边形内,刷新颜色

26                     r = pl[j].r; 27                     b = pl[j].b; 28                     g = pl[j].g; 29  } 30  } 31             printf("%d %d %d\n",r,g,b); 32  } 33  } 34     return 0; 35 }

 

Freecode : www.cnblogs.com/yym2013

你可能感兴趣的:(水题)