zoukankan      html  css  js  c++  java
  • [测试题]gene

    Description

    Input

    Output

    Sample Input

    3
    A+00A+A+ 00B+D+A- B-C+00C+

    Sample Output

    bounded

    Hint

    题解

     1 //It is made by Awson on 2017.9.19
     2 #include <map>
     3 #include <set>
     4 #include <cmath>
     5 #include <ctime>
     6 #include <queue>
     7 #include <stack>
     8 #include <cstdio>
     9 #include <string>
    10 #include <vector>
    11 #include <cstdlib>
    12 #include <cstring>
    13 #include <iostream>
    14 #include <algorithm>
    15 #define LL long long
    16 #define Max(a, b) ((a) > (b) ? (a) : (b))
    17 #define Min(a, b) ((a) < (b) ? (a) : (b))
    18 #define Abs(a) ((a) < 0 ? (-(a)) : (a))
    19 using namespace std;
    20 
    21 int n;
    22 
    23 int getnum(char x, char y) {
    24     if (x == '0') return 52;
    25     return x-'A'+26*(y == '+');
    26 }
    27 void work() {
    28     char ch[10];
    29     bool mp[100][100] = {0};
    30     int in[100] = {0};
    31     for (int T = 1; T <= n; T++) {
    32         scanf("%s", ch+1);
    33         for (int i = 1; i <= 8; i += 2)
    34             for (int j = 1; j <= 8; j += 2)
    35                 if (i != j) {
    36                 int x = getnum(ch[i], ch[i+1]);
    37                 int y = getnum(ch[j], ch[j+1]);
    38                 if (x == 52 || y == 52) continue;
    39                 if (y < 26) y += 26;
    40                 else y -= 26;
    41                 mp[x][y] = true;
    42             }
    43     }
    44     for (int i = 0; i <= 52; i++)
    45         for (int j = 0; j <= 52; j++)
    46             if (mp[i][j]) in[j]++;
    47     int cnt = 0;
    48     queue<int>Q;
    49     while (!Q.empty()) Q.pop();
    50     for (int i = 0; i <= 52; i++)
    51         if (!in[i]) Q.push(i);
    52     while (!Q.empty()) {
    53         int u = Q.front(); Q.pop();
    54         cnt++;
    55         for (int i = 0; i <= 52; i++)
    56             if (mp[u][i]) {
    57                 in[i]--; 
    58                 if (!in[i]) Q.push(i);
    59             }
    60     }
    61     printf("%s
    ", cnt < 53 ? "unbounded" : "bounded");
    62 }
    63 
    64 int main() {
    65     freopen("gene.in", "r", stdin);
    66     freopen("gene.out", "w", stdout);
    67     while (~scanf("%d", &n))
    68         work();
    69     return 0;
    70 }
  • 相关阅读:
    17-DBSCAN密度聚类
    16-K-means聚类
    15-TF-IDF
    14-支持向量机SVM
    13-感知机原理概述
    12-随机森林
    11-集成学习原理概述
    10-决策树
    9-朴素贝叶斯
    栈和队列(python)
  • 原文地址:https://www.cnblogs.com/NaVi-Awson/p/7552710.html
Copyright © 2011-2022 走看看