uva861 Little Bishops
题目信息: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相关推荐
- CodeForce 463C Gargari and Bishops(贪心+暴力)
Gargari and Bishops time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 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 ...
- Bishops Alliance—— 最大上升子序列
原题链接:http://codeforces.com/gym/101147/problem/F 题意:n*n的棋盘,给m个主教的坐标及其私有距离p,以及常数C,求位于同一对角线上满足条件:dist(i ...
- codeforces Gargari and Bishops(很好的暴力)
1 /* 2 题意:给你一个n*n的格子,每一个格子都有一个数值!将两只bishops放在某一个格子上, 3 每一个bishop可以攻击对角线上的格子(主对角线和者斜对角线),然后会获得格子上的 4 ...
- codeforces 463C. Gargari and Bishops 解题报告
题目链接:http://codeforces.com/contest/463/problem/C 题目意思:要在一个 n * n 大小的棋盘上放置两个bishop,bishop可以攻击的所有位置是包括 ...
- node seneca_使用Node.js和Seneca编写国际象棋微服务,第1部分
node seneca (This is Part 1 of a three-part series [Part 2, Part 3]) (这是一个由三部分组成的系列文章的第1部分[ 第2 部分 , ...
- 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》
虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...
- 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 ...
- 《算法入门经典大赛——培训指南》第二章考试
UVa特别考试 UVa站点专门为本书设立的分类题库配合,方便读者提交: http://uva.onlinejudge.org/index.php?option=com_onlinejudge& ...
最新文章
- 关于js的回调函数的一点看法
- REST /使用提要发布事件
- vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。...
- linux 5.4 安装php
- Spring中的@Autowired自动装配
- Access数据库的查询
- 南阳理工ACM 题目33 蛇形填数
- 开源知识管理系统_开源MrDoc,一个适合个人和小型团队的文档、知识、笔记在线管理系统...
- 传奇3单机显示服务器进不去,传奇3私服单机 数据库连接不上 dafe
- EAUML日拱一卒-活动图::14.2 Behavior StateMachines (10)
- 51单片机:P1口输入/输出实验1(控制发光二极管亮灭)
- jQuery排他思想(siblings)
- 【BLE】跳频算法实例分析
- Fun Encryption Hero - Source GoDapp
- Windows10系统VC++6.0安装教程
- HIT校园网ps4联机教程
- Nginx配置模块详解及多站点共用80端口案例
- 安装awvs14.7
- PS打开PSD文档服务器未响应,win7打开psd打不开怎么办|win7打开psd文件提示无法完成请求的解决方法...
- 横版java_Project4 自己用java写的横版格斗游戏
功能还不是很复杂
可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...
热门文章
- Wazuh--一个完善的开源EDR产品
- (8)FPGA实现1s闪灯代码(学无止境)
- (73)FPGA面试题-Verilog实现5人表决器
- 计算机一级考试复习资料,全国计算机一级考试复习资料
- 拿网站服务器的作用,谈在线网站服务器监控(二)之使用的基本功能要求
- av linux,linux下的开源clanav
- php判断日期文章变红,DeDecms如何实现当天发表的文章日期以红色显示
- spring cloud bus_Spring Cloud学习笔记--消息总线(Bus)
- Linux内核网络协议栈6-socket地址绑定(2)
- Linux操作系统下三种配置环境变量的方法