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 }
  • 相关阅读:
    svn Mac
    webpack实用配置
    vuex状态管理-数据改变不刷新
    element-vue-koa2-mysql实现文件上传
    Promise的理解
    mysql Mac篇
    python 24 days
    python 7 days
    python 27 days
    python 26 days
  • 原文地址:https://www.cnblogs.com/windysai/p/3220925.html
Copyright © 2011-2022 走看看