• hdu5258简单枚举


    百度之星复赛第一题。不明白这么水的题为何一堆人没过。。。这些人是咋晋级复赛的呢。。。

    /*
     * Author    : ben
     */
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <cmath>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <set>
    #include <map>
    #include <stack>
    #include <string>
    #include <vector>
    #include <deque>
    #include <list>
    #include <functional>
    #include <numeric>
    #include <cctype>
    using namespace std;
    typedef struct Bang {
        int x1, x2;
        int y1, y2;
        Bang(int xx1 = 0, int yy1 = 0, int xx2 = 0, int yy2 = 0) {
            x1 = xx1;
            x2 = xx2;
            y1 = yy1;
            y2 = yy2;
        }
    } Bang;
    Bang heng[30], shu[30];
    int N, M, ans;
    bool isCross(const Bang &b1, const Bang &b2) {
        if (b2.x1 >= b1.x1 && b2.x1 <= b1.x2) {
            if (b1.y1 >= b2.y1 && b1.y1 <= b2.y2) {
                return true;
            }
        }
        return false;
    }
    void work() {
        for (int i = 0; i < N; i++) {
            for (int j = i + 1; j < N; j++) {
                for (int a = 0; a < M; a++) {
                    if (!isCross(heng[i], shu[a]) || !isCross(heng[j], shu[a])) {
                        continue;
                    }
                    for (int b = a + 1; b < M; b++) {
                        if (isCross(heng[i], shu[b]) && isCross(heng[j], shu[b])) {
                            ans++;
                        }
                    }
                }
            }
        }
    }
    
    int main() {
        int T, n;
        int x1, x2, y1, y2;
        scanf("%d", &T);
        for (int t = 1; t <= T; t++) {
            N = 0;
            M = 0;
            ans = 0;
            scanf("%d", &n);
            for (int i = 0; i < n; i++) {
                scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
                if (x1 == x2) {
                    shu[M++] = Bang(x1, min(y1, y2), x2, max(y1, y2));
                } else {
                    heng[N++] = Bang(min(x1, x2), y1, max(x1, x2), y2);
                }
            }
            work();
            printf("Case #%d:
    %d
    ", t, ans);
        }
        return 0;
    }
  • 相关阅读:
    【Leetcode】Insertion Sort List JAVA实现
    【Leetcode】Sort List JAVA实现
    Maximum Product Subarray JAVA实现
    hadoop2.0中无法启动datanode的问题
    合并排序
    setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式
    postgresql 服务器端编程之hello word
    mac osx get postgresql path
    mac osx install mysql
    django 基于proxy实现用户权限管理
  • 原文地址:https://www.cnblogs.com/moonbay/p/4557287.html
Copyright © 2020-2023  润新知