- 浏览: 146881 次
- 性别:
- 来自: 帝都
文章分类
最新评论
-
jackchen0227:
汗,谢谢啊
joj 1817: Triangle 三角形的判定 -
RootJ:
输出时候没有写:号。。。
joj 1817: Triangle 三角形的判定 -
jackchen0227:
嗯再捡捡。。
不带括号的四则运算 -
ruby_windy:
不是大二实验课写的么...
不带括号的四则运算
1017: Fire Net
3s | 8192K | 1086 | 565 | Standard |
Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall.
A blockhouse is a small castle that has four openings through which to shoot. The four openings are facing North, East, South, and West, respectively. There will be one machine gun shooting through each opening.
Here we assume that a bullet is so powerful that it can run across any distance and destroy a blockhouse on its way. On the other hand, a wall is so strongly built that can stop the bullets.
The goal is to place as many blockhouses in a city as possible so that no two can destroy each other. A configuration of blockhouses is legal provided that no two blockhouses are on the same horizontal row or vertical column in a map unless there is at least one wall separating them. In this problem we will consider small square cities (at most 4x4) that contain walls through which bullets cannot run through.
The following image shows five pictures of the same board. The first picture is the empty board, the second and third pictures show legal configurations, and the fourth and fifth pictures show illegal configurations. For this board, the maximum number of blockhouses in a legal configuration is 5; the second picture shows one way to do it, but there are several other ways.
Your task is to write a program that, given a description of a map, calculates the maximum number of blockhouses that can be placed in the city in a legal configuration.
The input file contains one or more map descriptions, followed by a line containing the number 0 that signals the end of the file. Each map description begins with a line containing a positive integer n that is the size of the city; n will be at most 4. The next n lines each describe one row of the map, with a '.' indicating an open space and an uppercase 'X' indicating a wall. There are no spaces in the input file.
For each test case, output one line containing the maximum number of blockhouses that can be placed in the city in a legal configuration.
Sample Input
4 .X.. .... XX.. .... 2 XX .X 3 .X. X.X .X. 3 ... .XX .XX 4 .... .... .... .... 0
Sample Output
5 1 5 2 4
/* 利用回溯的方法来判断所有的可能 */ #include <stdio.h> #include <string.h> int time = 0; char con[4][4]; int num,Max; bool check2() { int i , j; for( i = 0 ; i < time ; ++i ) { for( j = 0 ; j < time ; ++j ) { if( con[i][j] == 'f' ) { int row , col; for( row = i + 1 ; row < time && con [row][j] != 'X' ; ++row ) if( con [row][j] == 'f' ) return false; for( col = j + 1 ; col < time && con [i][col] != 'X' ; ++col ) if( con [i][col] == 'f' ) return false; } } } return true; } void Rec3(int row,int col) { if(row >= time) //边界之一 { if(num > Max) Max = num; return; } if(col >= time) //边界之二 { Rec3(row +1,0);//col 从0开始 return ; //这个return 是必须的,要不然回退到此处时候,还会向下执行 } if(con[row][col] == '.') { ////////////////////////////////////////////////////////////////////////////////////////// con[row][col] = 'f'; num ++; if(check2()) Rec3(row,col + 1); /////////////////////////////////////////////////本区间的代码是回溯可以产生的关键 num --; con[row][col] = '.'; Rec3(row,col + 1); /////////////////////////////////////////////////////////////////////////////////////////// } else { Rec3(row,col +1); } } int main() { memset(con,'\0',sizeof(con)); freopen("in.txt","r",stdin); while(scanf("%d\n",&time) != EOF && time != 0){ for(int i=0;i<time;i++) { for(int j=0;j<time;j++) { con[i][j] = (char)getchar(); if(j == time -1) getchar(); } //scanf("%c",&con[i][j]); } num = 0; Max =0; Rec(0,0); printf("%d\n",Max); memset(con,'\0',sizeof(con)); } fclose(stdin); return 0; }
发表评论
-
-在二元树中找出和为某一值的所有路径--捡捡递归的使用
2012-03-30 21:05 930/* 算法要求:打印从root到叶节点的路径上的权值和 为 ... -
不带括号的四则运算
2011-10-09 21:24 1476/* 不带括号的表达式的四则运算 使用两个堆栈,一个o ... -
[zz]catalan数的分析与应用
2011-06-25 22:09 1376性质 令h(0)=1,h( ... -
joj 1085: I Think I Need a Houseboat 半圆形侵蚀
2011-06-24 20:54 9791085: I Think I Need a Ho ... -
joj 1032 deck 重心的计算
2011-06-24 19:12 11331032: Deck Result TIME ... -
joj 1186 Box of Bricks 水题
2011-06-19 09:46 9581186: Box of Bricks Re ... -
***joj 1026 the staircase 利用递归、动态规划和一道类似题目
2011-06-18 19:27 1303转自网易何国涛的博客http://zhedahht.bl ... -
joj 1062 Computer Versus Mankind 非递归最大公约数 最小公倍数
2011-06-18 15:15 12431062: Computer Versus Mankin ... -
基本的排序:非递归的堆排序
2011-06-17 15:38 0void restore(int root,int le ... -
joj 1817: Triangle 三角形的判定
2011-06-15 20:34 13411817: Triangle Result ... -
×joj 1175 The Binomial Function 递归,递归优化,非递归
2011-06-15 19:32 8721175: The Binomial Functio ... -
joj 1146 标准输入+字符串反转
2011-06-15 18:02 11691146: Word Reversal Re ... -
joj 1149Binary Number 二进制移位操作
2011-06-15 09:50 9641149: Binary Numbers R ... -
joj 2484
2011-06-14 13:35 8552484: Chinese Character A ... -
joj 1014 the matrix 从八个方向遍历访问矩阵
2011-06-10 20:51 12091014: The Matrix Re ... -
joj 1013 Polynomial Multiplication多项式乘法的计算
2011-06-10 19:54 13261013: Polynomial Multiplic ... -
[zz] c 与 c++ 中的内存分配
2011-06-08 21:45 1335C语言跟 ... -
new 与malloc的区别
2011-06-08 21:24 2484学过C++和C语言的一般都会对编程语言中的内存分配有点小困 ... -
joj 2749 大数比较大小与减法
2011-06-08 16:32 1942/* 题目不难,一个大 ... -
**joj 1903 tug of war 使用动态规划
2011-06-07 10:36 14981903: Tug of War R ...
相关推荐
【标题】"JOJ-jilin-university--acm.rar_joj" 提供的是吉林大学JOJ在线判题系统的编程竞赛代码集,主要用于帮助初学者入门。 【描述】中的信息表明,这个压缩包内的代码样例是专门为在JOJ平台上进行编程训练的学生...
【标题】:“JOJ上做的一些ACM试题” 在计算机科学领域,ACM(Association for Computing Machinery)国际大学生程序设计竞赛是一项备受瞩目的比赛,旨在提升大学生的算法设计、问题解决以及团队协作能力。JOJ...
这是因为假设最旧的页面不再被频繁使用,因此淘汰它可能导致最小的缺页率。然而,FIFO算法在实际应用中往往表现不佳,因为它容易引发Belady异常,这是一种理论上可能的情况,即增加分配给进程的物理页面数反而导致...
【标题】"joj acm 部分习题解答"揭示了这是一份与JOJ(Judge Online Job)和ACM(国际大学生程序设计竞赛)相关的资源,主要是作者对于某些题目的解题思路和代码实现。JOJ是用于在线评测编程竞赛题目的一种平台,而...
Java 开源项目 Joj 是一个致力于为 Java ...Joj 的源代码、API 文档以及示例代码通常可在其官方网站或 GitHub 上找到,以便于开发者进一步学习和使用。通过参与开源社区,开发者还可以为项目贡献代码,共同推动其发展。
4. **现场管理目标**:根据JOJ59—59安全检查标准和重庆市建筑工地文明施工标准,对施工现场进行规范化管理,争取成为重庆市的安全文明施工示范工地。 5. **安全管理目标**: - **安全教育目标**:建立安全生产...
#### 标题:吉林大学ACM题集.pdf—JOJ 此文档标题明确指出了文档的主要内容——一个由吉林大学组织编写的ACM竞赛题集,并且该题集是以PDF格式提供的。这里提到的“JOJ”即吉林大学在线裁判系统(Jilin University On...
根据给定的信息,本文将详细解释“acm joj 1600”中的两种大数取模运算方法。此问题主要关注如何高效地计算形如 \(a^b \mod m\) 的表达式,这对于处理大数据或进行密码学运算非常重要。 ### 大数取模运算 #### ...
joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考
描述中提到的"joj acm 源代码",JOJ(Judge Online Judge)是一个在线编程评测系统,很多高校和编程爱好者使用它来提交和测试代码,解决各种算法问题。源代码通常是程序员编写的原始程序,这里指的可能是参赛者在ACM...
标题“joj 1424 硬币兑换问题”描述的是一个经典的计算机编程问题,它涉及到使用动态规划(Dynamic Programming, DP)方法来解决硬币找零问题。在这个问题中,我们要找到使用最少数量的硬币来凑成特定金额的方式。...
Etre au courant quand JoJ est en live,策划人semaine et liens vers lesréséauxauxsocioaux Soyez au courant纠结JoJ开始à流光! 现场直播将继续进行。 约翰·奎因·伊斯特·布鲁和克林·德集团的非官方网站 D...
吉林大学 joj 1000-2645题代码,嘿嘿,大家就不用在花JPOINT买代码了,祝ACMer实现自己的心愿
这个题其实现在想起来也不知道是怎么就给ac的。
该mod基于荒木飞吕彦的JoJo的奇妙冒险漫画和动漫系列。 这个mod也受到KnightDemon的1.12 mod 极大启发。 这个mod的目的是要从专营权中尽可能多地增加Minecraft,该mod目前仅包含Stand能力,其他能力(Hamon,...
Este Projeto签证是由estoque进行的,它是由mer mercadorias uma determinada empresa sejam averiguadas和atualizadas ... 2021年1月20日,由JoséCláudiodeAraújoJúnior和Annielly Ferreira de Sousa所设计。
furystudios 普尔维·扎达塔克(Prvi zadatak) ...DroppingOff - radnikhodajućidolazi做pripadajuće科萨雷(izvedeno kroz provjeru tagova kutije)我卡达joj JE dovoljno blizu,fizičkiJE lan
大智慧最新安装包,老的已经过期不能查询个人自选股,所以推荐最新的大智慧给大家安装