hdu4499Cannon dfs暴搜

原创 2015年11月17日 16:06:24
//在一个n*m(n,m<=5)的棋盘上原来放着棋子
//在棋盘的空位上放炮,要求一个炮不能吃到
//另一个
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 10 ;
int map[maxn][maxn] ;
int n , m ;
int judge(int i , int j)
{
    int flag = 0 ;
    for(int k = i+1;k <= n;k++){
       if(map[k][j]==2&&flag==1){
            return false ;
        }
        if(map[k][j]){
            flag++ ;
        }
    }
    flag = 0;
    for(int k = i-1;k > 0;k--){
        if(map[k][j]==2&&flag==1){
            return false ;
        }
        if(map[k][j]){
            flag++ ;
        }
    }
    flag = 0 ;
    for(int k = j+1;k <= m;k++){
       if(map[i][k]==2&&flag==1){
           return false ;
       }
       if(map[i][k]){
          flag++;
       }
    }
    flag = 0 ;
    for(int k = j-1;k > 0;k--){
        if(map[i][k]==2&&flag==1){
            return false ;
        }
        if(map[i][k]){
            flag++;
        }
    }
    return true ;
}
int dfs(int x , int y ,int sum)
{
    y++ ;
    if(y == m+1){
       x++ ;
       y = 1 ;
    }
    if(x == n+1){
       return sum ;
    }
    int ans = 0 ;
    ans = dfs(x , y , sum) ;
    if(map[x][y] == 0){
        map[x][y] = 2 ;
        if(judge(x,y))
        ans = max(ans , dfs(x , y , sum+1)) ;
        map[x][y] = 0 ;
    }
    return ans ;
}
int main()
{
    int q ;
    while(~scanf("%d%d%d" , &n , &m , &q)){
        memset(map , 0 , sizeof(map)) ;
        for(int i = 1;i <= q;i++){
            int a , b ;
            scanf("%d%d" , &a , &b) ;
            map[a+1][b+1] = 1 ;
        }

        printf("%d\n" , dfs(1,0 , 0)) ;
    }
    return 0 ;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

POJ 3188暴搜

题意: 思路: 裸的暴搜 …….但是要注意如果你不用所有的按键就能输出最优解的话一定要把所有的子木都安排到一个位置…. 我的一群PE就是这么来的……为什么写的人这么少…… // b...
  • qq_31785871
  • qq_31785871
  • 2016年08月27日 14:51
  • 572

大暴搜 字串变换

65. [NOIP2002] 字串变换 时间限制:1 s   内存限制:128 MB [问题描述] 已知有两个字串A$, B$及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ ...
  • QTY2001
  • QTY2001
  • 2017年08月08日 20:51
  • 156

poj The Clocks(暴搜)

http://poj.org/problem?id=1166 大致题意:输入一个3*3的矩阵,其中0=12 o'clock, 1=3 o'clock, 2=6 o'clock, 3=9 o'...
  • u013081425
  • u013081425
  • 2014年06月06日 22:24
  • 854

HDU4499Cannon

水题一道,小模拟,写的时候也算挺顺利,因为数据范围特别小所以直接暴力,用了一下剪枝不过不知道作用不大,无论如何还是ac了,不多说直接上代码#include #include #include #...
  • beyhhhh
  • beyhhhh
  • 2015年04月30日 01:55
  • 159

POJ 3009 dfs暴搜

Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15172 Accepted:...
  • qq_22902423
  • qq_22902423
  • 2015年11月06日 22:01
  • 184

poj2531 暴搜

给定无向图,将顶点分成两个集合,使得两个集合间的所有边权最大。 #include #include #include using namespace std; int c[22][22], ...
  • Non_Cease
  • Non_Cease
  • 2012年03月02日 21:04
  • 991

POJ3050Hopscotch【dfs 暴搜水题】

Language: Default Hopscotch Time Limit: 1000MS   Memory Limit: 65536K Total Subm...
  • R1986799047
  • R1986799047
  • 2015年08月11日 23:21
  • 383

POJ 1129:Channel Allocation 四色定理+暴力搜索

Channel Allocation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13357   Accept...
  • u010885899
  • u010885899
  • 2015年09月08日 10:16
  • 311

【NOIP普及组】2016模拟考试(10.29)——文化之旅

问题 D: 文化之旅(culture.cpp) 时间限制: 1 Sec  内存限制: 128 MB 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过...
  • C20190102
  • C20190102
  • 2016年11月01日 14:09
  • 426

花瓶收集 POJ1632 经典DFS 枚举+暴搜

花瓶收集 POJ1632 经典DFS 枚举+暴搜 做这道题的第一个障碍在于读题。刚开始把题目读了三遍,也没搞清楚要求什么。其实可以把shape和decoration看成点,它们之际的对应关系看成边,这...
  • sj13051180
  • sj13051180
  • 2011年07月17日 21:12
  • 936
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu4499Cannon dfs暴搜
举报原因:
原因补充:

(最多只允许输入30个字)