zoukankan      html  css  js  c++  java
  • A

    地图看起来不太大,可以试试深搜,试一下..
    还是比较简单的搜索,竟然一下就过...................
    #include<stdio.h>
    #include<string.h>

    #define maxn 20

    int m;                                          //地图长和宽
    int C;                                          //摆放的方案总数
    int p[maxn];                                    //标记数组,这列是否已经摆放
    char G[maxn][maxn];                             //保存地图


    void DFS(int r, int k)                          //第r行和剩余需要摆放的数目k
    {
        int i;

        if(k == 0)
        {
            C++;
            return ;
        }
        if(r >= m)return ;

        for(i=0; i<m; i++)
        {
            if(G[r][i] == '#' && p[i] == 0)
            {
                p[i] = 1;
                DFS(r+1, k-1);
                p[i] = 0;
            }
        }

        DFS(r+1, k);//这行不摆放,直接进入下行
    }

    int main()
    {
        int k;                                      //需要摆放棋子的数目

        while(scanf("%d%d", &m, &k), m != -1)
        {
            int i;

            for(i=0; i<m; i++)
                scanf("%s", G[i]);

            memset(p, 0sizeof(p));
            C = 0;

            DFS(0, k);

            printf("%d ", C);
        }

        return 0;

    } 

  • 相关阅读:
    java类实现 指定网站信息采集
    通过jxl.jar 读取、导出excel的小例子
    SQL使用CASE WHEN THEN
    动态查询的实现
    Oracle 查询存储过程 做横向报表
    文本信息 生成二维码 例子
    将对象转换为指定的Map
    eclipse 插件大全
    让人看了舒服的清爽颜色搭配CSS
    spring 定时任务 实现
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4647660.html
Copyright © 2011-2022 走看看