zoukankan      html  css  js  c++  java
  • poj 1676

    保存不完整数字可能对应的数字,注意小时<24,分钟小于59.

    AC代码

    #include <stdio.h>
    #include <vector>
    using namespace std;
    const int maxn = 100 + 5;
    char s[3][maxn];
    int ret[maxn], tol;
    vector<int> a[8];
    int h, m;
    char dig[][9] = {
        ' ','_',' ','|',' ','|','|','_','|',
        ' ',' ',' ',' ',' ','|',' ',' ','|',
        ' ','_',' ',' ','_','|','|','_',' ',
        ' ','_',' ',' ','_','|',' ','_','|',
        ' ',' ',' ','|','_','|',' ',' ','|',
        ' ','_',' ','|','_',' ',' ','_','|',
        ' ','_',' ','|','_',' ','|','_','|',
        ' ','_',' ',' ',' ','|',' ',' ','|',
        ' ','_',' ','|','_','|','|','_','|',
        ' ','_',' ','|','_','|',' ','_','|'};
        
    void dfs(int num) {
        if(num >= 8) {
            int x = (ret[0]*10 + ret[1])*60 + (ret[2]*10+ret[3]);
            int y = (ret[4]*10 + ret[5])*60 + (ret[6]*10+ret[7]);
            if(x > 23*60+59 || y > 23*60+59) {
                return;
            }
            if((y+15) % (24*60) == x) {    
                //printf("%d : %d   %d : %d
    ", ret[0]*10+ret[1],ret[2]*10+ret[3],ret[4]*10 + ret[5],ret[6]*10+ret[7]);
                h = ret[0]*10 + ret[1];
                m = ret[2]*10+ret[3];
                tol++;
            }
            return;
        }
        if(tol > 1) return;;
        for(int i = 0; i < a[num].size(); i++) {
            ret[num] = a[num][i];
            dfs(num+1);
        }
    }
    
    int main() {
        int T;
        scanf("%d", &T);
        getchar();
        while(T--) {
            tol = 0;
            for(int i = 0; i < 8; i++) a[i].clear();
            for(int i = 0; i < 3; i++) {
                fgets(s[i], sizeof(s[i]), stdin); 
            }
            int num = 0;
            for(int i = 0; i < 3*8+1; i+=3) {
                if(i==12) {
                    i = 10;
                    continue;
                }
                vector<char> b;
                for(int j = 0; j < 3; j++) {
                    for(int k = i; k < i+3; k++) {
                        b.push_back(s[j][k]);
                    }
                }
                // compare
                for(int j = 0; j < 10; j++) {
                    int f = 1;
                    for(int k = 0; k < 9; k++) {
                        if(dig[j][k] != b[k] && (b[k] == '_' || b[k] == '|')) f = 0;
                    }
                    if(f) {
                        if(num % 4 == 0) {
                            if(j <= 2) a[num].push_back(j);
                        }else if(num % 4 == 2) {
                            if(j <= 5) a[num].push_back(j);
                        }else {
                            a[num].push_back(j);
                        }
                    }
                }
                num++;
            }
            dfs(0);
            if(tol != 1) printf("Not Sure
    ");
            else printf("%02d%02d
    ", h, m);
        }
        return 0;
    }

    如有不当之处欢迎指出!

  • 相关阅读:
    Django之Orm的各种操作
    python面试题---收藏的笔记
    jQuery中$.each()方法的使用
    Django 之 路由URL,视图,模板
    高级FTP服务器开发
    选课系统
    ATM
    开发一个简单的python计算器
    学习PYTHON之路, DAY 8
    学习PYTHON之路, DAY 7
  • 原文地址:https://www.cnblogs.com/flyawayl/p/8665296.html
Copyright © 2011-2022 走看看