zoukankan      html  css  js  c++  java
  • codeforces B. Eight Point Sets 解题报告

    题目链接:http://codeforces.com/problemset/problem/334/B

          一开始看到题目,有点怯,理解了题目后,其实并不难。这句话是突破口 three distinct integer vertical straight lines and three distinct integer horizontal straight lines(三个不同的整数所组成的垂直直线和三个不同的整数所组成的水平直线)。

           首先要保证三个x是不同的(x1 != x2 != x3),三个y当然也是。x1包括三个相同的点(x11 = x12 = x13),x2包括两个相同的点(x21 = x22),x3包括三个相同的点(x31 = x32 = x33);y1的三个点则保证不同(y11 != y12 != y13),y2的两个点保证不同(y21 != y22),y3的三个点不同(y31 != y32 != y33)。然后要保证y11 = y21 = y31,y12 = y32,y13 = y22,y13 = y22 = y33,注意,不是y12 = y22 = y32,这是很容易错的)。另外,排序函数的cmp的运用起到了预处理的作用。

         

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <stdio.h>
     4 #include <stdlib.h>
     5 using namespace std;
     6 
     7 struct set
     8 {
     9     int x, y;
    10 }p[10];
    11 
    12 int cmp(set a, set b)
    13 {
    14     if (a.x != b.x)         // x不同时(组外)按x(组外)升序排序
    15         return a.x < b.x;
    16     return a.y < b.y;     // x相同时(组内)按y(组内)升序排序
    17 }
    18 
    19 int main()
    20 {
    21     int i;
    22     for (i = 0; i < 8; i++)
    23         scanf("%d%d", &p[i].x, &p[i].y);
    24     sort(p, p+8, cmp);
    25     if (p[0].x == p[2].x && p[3].x == p[4].x && p[5].x == p[7].x &&
    26         p[0].x != p[3].x && p[3].x != p[5].x &&
    27         p[0].y == p[3].y && p[0].y == p[5].y && p[1].y == p[6].y && 
    28         p[2].y == p[4].y && p[2].y == p[7].y && p[0].y != p[1].y && 
    29         p[1].y != p[2].y)
    30         printf("respectable\n");
    31     else
    32         printf("ugly\n");
    33     return 0;
    34 }
  • 相关阅读:
    个人总结
    找水王
    nabcd需求分析
    四则运算最终篇-网页版四则运算
    第一次冲刺--个人工作总结02
    第一次冲刺--个人工作总结01
    组队APP功能点定点NABCD分析
    水王
    软件工程结对作业01
    个人工作总结06
  • 原文地址:https://www.cnblogs.com/windysai/p/3220925.html
Copyright © 2011-2022 走看看