zoukankan      html  css  js  c++  java
  • hdu4499Cannon(搜索)

    链接

    这样的叫迭代吗。。最近多做些搜索题了要 

    分行分列搜 判断满足条件 

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 using namespace std;
     7 int o[8][8],n,m,q,p[8][8];
     8 int ans;
     9 int judge(int x,int y)
    10 {
    11     int i,j,kk=0;
    12     if(o[x][y])
    13     return 0;
    14     for(i = x-1 ; i>= 0 ;i--)
    15     if(o[i][y]||p[i][y])
    16     break;
    17     for(j = i-1 ; j>=0 ; j--)
    18     if(o[j][y]||p[j][y])
    19     {
    20         if(p[j][y]) return 0;
    21         break;
    22     }
    23     for(i = y-1 ; i>= 0 ;i--)
    24     if(o[x][i]||p[x][i])
    25     break;
    26     for(j = i-1 ; j>=0 ; j--)
    27     if(o[x][j]||p[x][j])
    28     {
    29         if(p[x][j]) return 0;
    30         break;
    31     }
    32     return 1;
    33 }
    34 void dfs(int oi,int y,int v)
    35 {
    36     int i,flag=0;
    37     if(y>=m)
    38     {
    39         y = 0;
    40         dfs(oi+1,y,v);
    41         return ;
    42     }
    43     if(oi>=n)
    44     {
    45         ans = max(ans,v);
    46         return ;
    47     }
    48     dfs(oi,y+1,v);
    49     if(judge(oi,y))
    50     {
    51         p[oi][y] = 1;
    52         dfs(oi,y+1,v+1);
    53         p[oi][y] = 0;
    54     }
    55 }
    56 int main()
    57 {
    58     int i,x,y,j;
    59     while(scanf("%d%d%d",&n,&m,&q)!=EOF)
    60     {
    61         memset(o,0,sizeof(o));
    62         memset(p,0,sizeof(p));
    63         ans = 0;
    64         for(i = 1 ; i <= q ; i++)
    65         {
    66             scanf("%d%d",&x,&y);
    67             o[x][y] = 1;
    68         }
    69         dfs(0,0,0);
    70         printf("%d
    ",ans);
    71     }
    72     return 0;
    73 }
    View Code
  • 相关阅读:
    react方法传参的两种方式
    react引入本地图片和远程图片
    用yarn代替npm
    react生命周期
    react子传父
    react删除元素
    react遍历数组
    react监听input框里的值
    react创建组件的两种方式
    vue打包更改dist文件夹名称
  • 原文地址:https://www.cnblogs.com/shangyu/p/3282593.html
Copyright © 2011-2022 走看看