zoukankan      html  css  js  c++  java
  • poj 3600 Subimage Recognition (枚举+dfs)

    http://poj.org/problem?id=3600

    枚举subimage第一行在image中的位置,然后在image中选取c列,若这c列中有r行和subimage相同,那么即为有解。

    code:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std ;
    int vis[21] ;
    char smap[21][21], imap[21][21] ;
    int r, c, R, C, flag ;
    int check(int cr){      //判断imap中是否有r行与smap相同
        int i, j, count = 0, x = 0, y = 0 ;
        for(i=cr; i<R; i++){
            y = 0 ;
            for(j=0; j<c; j++)
                if(smap[x][y]==imap[i][vis[j]])
                    y ++ ;
            if(y==c)    x ++ ;
        }
        if(x==r)    return 1 ;
        return 0 ;
    }
    void dfs(int cr, int num, int cc){
        if(flag||cc>C)    return ;
        if(num==c){         //选取的列数为c时判断
            flag = check(cr) ;
            return ;
        }
      /*for(int i=cc; i<C; i++){
            vis[num] = i ;
            dfs(cr, num+1, i+1) ;
        }
    */
        vis[num] = cc ;
        dfs(cr, num+1, cc+1) ;
        if(flag)    return ;
        dfs(cr, num, cc+1) ;
    }
    int main(){
        int i, j ;
        while(~scanf("%d%d", &r, &c)){
            for(i=0; i<r; i++)
                cin >> smap[i] ;
            scanf("%d%d", &R, &C) ;
            for(i=0; i<R; i++)
                cin >> imap[i] ;
            for(i=0; i<R-r+1; i++){     //枚举子图第一行所在位置
                dfs(i, 00) ;
                if(flag)    break ;
            }
            if(flag)    printf("Yes\n") ;
            else        printf("No\n") ;
        }
        return 0 ;}
  • 相关阅读:
    Ceph 之RGW Cache
    Ceph 之RGW Pub-Sub Module
    Ceph 之RGW Data Layout
    RocksDB 之Write Ahead Log(WAL)
    Ceph 之 Background on http frontends
    Ceph 之Multisite 下的bucket reshard
    Ceph之PG数调整
    Ceph之对象存储网关RADOS Gateway(RGW)
    window mysql重启、忘记密码等操作
    selenium处理HTML5视频播放未能自动播放解决办法
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2446723.html
Copyright © 2011-2022 走看看