题目信息:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=802

利用回溯法求解,但是一直超时。看了CSDN寂静山林用动态规划求解,速度很快。

下面是超时的回溯法代码:

////2012/2/28////#include<iostream>#include<algorithm>

using namespace std;

#define MAXSIZE 8void backtrack(int m,int row,int col);int a[8][8];//初始化为0,做为标记位int n,k;long long sum;int main(){while(true)    {        cin>>n>>k;if(n==0 && k==0) break;

        memset(a,0,sizeof(a));        sum=0;//记录解的个数//回溯法找合适的解        backtrack(0,0,0);        cout<<sum<<endl;    }return 0;}bool issolution(int i,int j){//判断i,j位置上是否可以放象,//检查i,j位置是左上角对角线和右上角对角线,下面的不用检查    int t=1;while(i-t>=0 && j-t>=0)    {if(a[i-t][j-t]==1) return false;        t++;    }    t=1;while(i-t>=0 && j+t<n)    {if(a[i-t][j+t]==1) return false;        t++;    }return true;}void print(){for(int i=0;i<n;++i)    {for(int j=0;j<n;++j)            cout<<a[i][j]<<" ";        cout<<endl;    }    cout<<"######"<<endl;}void backtrack(int m,int row,int col){//如果m为k时,sum++,否则继续寻找合适的解    if(m==k)    {        ++sum;//print();    }//剪去剩余量+m不能满足==k的分支    else if(n*n-n*row-col< k-m) return;else    {//保证从第i,j个开始寻找        int j;        j=col;for(int i=row;i<n;++i)        {for(;j<n;j++)            {

if(a[i][j]!=1 && issolution(i,j))                {                    a[i][j]=1;if(j==n-1)                        backtrack(m+1,i+1,0);else                       backtrack(m+1,i,j+1);                    a[i][j]=0;                }            }            j=0;        }    }}

转载于:https://www.cnblogs.com/redlight/archive/2012/03/02/2377807.html

uva861 Little Bishops相关推荐

  1. CodeForce 463C Gargari and Bishops(贪心+暴力)

    Gargari and Bishops time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  2. 18行代码AC_Wet Shark and Bishops CodeForces - 621B(数学推导+映射)

    励志用少的代码做高效表达 Problem describe Today, Wet Shark is given n bishops on a 1000 by 1000 grid. Both rows ...

  3. Bishops Alliance—— 最大上升子序列

    原题链接:http://codeforces.com/gym/101147/problem/F 题意:n*n的棋盘,给m个主教的坐标及其私有距离p,以及常数C,求位于同一对角线上满足条件:dist(i ...

  4. codeforces Gargari and Bishops(很好的暴力)

    1 /* 2 题意:给你一个n*n的格子,每一个格子都有一个数值!将两只bishops放在某一个格子上, 3 每一个bishop可以攻击对角线上的格子(主对角线和者斜对角线),然后会获得格子上的 4 ...

  5. codeforces 463C. Gargari and Bishops 解题报告

    题目链接:http://codeforces.com/contest/463/problem/C 题目意思:要在一个 n * n 大小的棋盘上放置两个bishop,bishop可以攻击的所有位置是包括 ...

  6. node seneca_使用Node.js和Seneca编写国际象棋微服务,第1部分

    node seneca (This is Part 1 of a three-part series [Part 2, Part 3]) (这是一个由三部分组成的系列文章的第1部分[ 第2 部分 , ...

  7. 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》

    虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...

  8. Codeforces #264 (Div. 2) D. Gargari and Permutations

    Gargari got bored to play with the bishops and now, after solving the problem about them, he is tryi ...

  9. 《算法入门经典大赛——培训指南》第二章考试

    UVa特别考试 UVa站点专门为本书设立的分类题库配合,方便读者提交: http://uva.onlinejudge.org/index.php?option=com_onlinejudge& ...

最新文章

  1. 关于js的回调函数的一点看法
  2. REST /使用提要发布事件
  3. vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。...
  4. linux 5.4 安装php
  5. Spring中的@Autowired自动装配
  6. Access数据库的查询
  7. 南阳理工ACM 题目33 蛇形填数
  8. 开源知识管理系统_开源MrDoc,一个适合个人和小型团队的文档、知识、笔记在线管理系统...
  9. 传奇3单机显示服务器进不去,传奇3私服单机 数据库连接不上 dafe
  10. EAUML日拱一卒-活动图::14.2 Behavior StateMachines (10)
  11. 51单片机:P1口输入/输出实验1(控制发光二极管亮灭)
  12. jQuery排他思想(siblings)
  13. 【BLE】跳频算法实例分析
  14. Fun Encryption Hero - Source GoDapp
  15. Windows10系统VC++6.0安装教程
  16. HIT校园网ps4联机教程
  17. Nginx配置模块详解及多站点共用80端口案例
  18. 安装awvs14.7
  19. PS打开PSD文档服务器未响应,win7打开psd打不开怎么办|win7打开psd文件提示无法完成请求的解决方法...
  20. 横版java_Project4 自己用java写的横版格斗游戏 功能还不是很复杂 可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...

热门文章

  1. Wazuh--一个完善的开源EDR产品
  2. (8)FPGA实现1s闪灯代码(学无止境)
  3. (73)FPGA面试题-Verilog实现5人表决器
  4. 计算机一级考试复习资料,全国计算机一级考试复习资料
  5. 拿网站服务器的作用,谈在线网站服务器监控(二)之使用的基本功能要求
  6. av linux,linux下的开源clanav
  7. php判断日期文章变红,DeDecms如何实现当天发表的文章日期以红色显示
  8. spring cloud bus_Spring Cloud学习笔记--消息总线(Bus)
  9. Linux内核网络协议栈6-socket地址绑定(2)
  10. Linux操作系统下三种配置环境变量的方法