E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Rooked
UVA 639 (13.08.25)
Don't Get
Rooked
In chess, the rook is a piece that can move any number of squaresvertically
·
2015-11-13 14:32
uva
hoj 1086 Don't Get
Rooked
二分图匹配
/* 题目: 象棋中的车在象棋盘上可以放置的最大数目(若没有挡板的话,在同一行或同一列的车 可以相互攻击,问的是所有的车可以和平地放置的最大数目) 分析: 方法一:
·
2015-11-13 05:06
get
UVA 639- Don't Get
Rooked
这是一道类似于N皇后的问题,叫我们将车放到小棋盘上面去,规则也类似,让每个车都不能攻击到其他车, 然后有墙阻隔,车是不能攻击到墙后的车的。参考了knowledgetime大神的代码,用回溯法来解决这个问题。 定义一个mat数组,先将棋盘的情况读入,如果是 ’ .’就将mat[i][j] 置为1,X则置为0;然后有一个放置 的函数,对于i行,j列,(I,j都从0开始)我们向上与向左搜索,判断是
·
2015-11-13 03:33
get
POJ 1315 Don't Get
Rooked
(dfs)
A - Don't Get
Rooked
Time Limit:1000MS Memory Limit:10000KB 
·
2015-11-12 10:24
get
uva 639 Don't Get
Rooked
变形N皇后问题 暴力回溯
题目:跟N皇后问题一样,不考虑对角冲突,但考虑墙的存在,只要中间有墙就不会冲突。 N皇后一行只能放一个,而这题不行,所以用全图暴力放棋,回溯dfs即可,题目最多就到4*4,范围很小。 刚开始考虑放一个棋子后就把其他不能放的地方标记下,然后再暴力,后来发现如果一个点重复标记在去标记时就会把点标成合法的,于是改用放棋子是进行检查,由于数据量小,也不会占用多少时间。 之后才想到,在标记时可以用累加
·
2015-11-11 19:28
get
UVA 639 Don't Get
Rooked
简单回溯 CODE: #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> using name
·
2015-11-02 18:55
get
UVA 639 Don't Get
Rooked
UVA_639 这个题目可以先将横向相连的“.”看作一个块,并记录下块开始和结束的坐标,每个块中只能放一个rook。 之后便顺序枚举每种方案并判断rook是否可以放在假设的位置,如果可以就继续深搜。当搜完搜有的块之后,就可以比较放置的rook总数与ans了,如果比ans大,则更新ans的值。 #include<stdio.h>#include<string.h>
·
2015-10-21 10:27
get
uva 639 Don't Get
Rooked
( 回溯 )
这道题确实是标准的回溯,果然还是早上比较清醒一些,昨天晚上想了好长一会儿都没有想起来,早上一会的功夫就A了,估计也有昨天晚上的帮助。。。总感觉不想写太多私人的东西在这上面,因为这个是每个人都可以无条件访问的。。。思路:由于数据比较小,可以把每个元素都遍历一遍,回溯选择,最多4*4,还是很小的,我交的才1ms,1A。。贴代码:#include #include #include intmap[10]
sinat_22659021
·
2015-07-28 09:00
UVA - 639 - Don't Get
Rooked
(暴力回溯)
UVA-639Don'tGetRookedTimeLimit: 3000MS MemoryLimit: Unknown 64bitIOFormat: %lld&%lluSubmit StatusDescriptionInchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwe
u014355480
·
2015-03-23 13:00
ACM
uva
回溯
暴力枚举
UVA 639 Don't Get
Rooked
Inchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwewillconsidersmallchessboards(atmost44)thatcanalsocontainwallsthroughwhichrookscannotmove.Thegoalistoplaceasm
jtjy568805874
·
2015-02-17 14:00
八皇后
uva
暴力
UVa 639 - Don't Get
Rooked
题目:在n*n的方格里,放入几个喷火器,他们会攻击同行、同列的点,问做多能放多少个。分析:图论,搜索,二分图匹配。本题可以利用搜索求解,这里我使用的是二分图匹配。 建图,把原图每行每列的不同的连续区间分别看成一个新图中的点xi与yj; 则边表示原图中对应位置的点,原图中可以互相攻击的点就对应到新图中相同的xi与yj; 则新图中的二分图最大匹配即为,原图中不能相互攻击的
mobius_strip
·
2014-11-01 17:00
UVA 639 - Don't Get
Rooked
题目大意:给你一个最大为4*4的棋盘,上面有黑色格子来分隔行和列,两车之间如果 没有黑色格子隔开的话, 每行每列最多一个车,问棋盘上最多能放多少个车解题思路:由于最大就4*4所以用回溯法,一个一个格子判断是否可以放车,来查找所有 可行方案中最多那个#include charboard[4][4]; intans,n,node[4][4];
kl28978113
·
2014-08-15 19:00
UVA - 639 Don't Get
Rooked
(回溯)
Don'tGetRooked Inchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwewillconsidersmallchessboards(atmost44)thatcanalsocontainwallsthroughwhichrookscannotmove.The
HelloWorld10086
·
2014-08-12 10:00
get
uva
dont
Rooked
uva 639 - Don't Get
Rooked
回溯法,注意回溯回来之后状态要恢复,冲突判断是从当前点向四周辐射,直到出界或者遇到墙,如果有遇到其他车,说明冲突。 #include intn; intboard[5][5]; intmaxNum; intisConflicted(inti,intj){ into,p; for(o=i;o>=0&&board[o][j]!=0;o--){ if(board[o][j]==-1
jdflyfly
·
2014-06-24 20:00
uva 639 - Don't Get
Rooked
第一次想简单了,只是按照自己的简单想法写出了其中的一种情况~验证阳历是发现了自己思路上的错误。然后正确思路很明确了——既然自己只写出一种情况不行,那么把所有的情况都列举一遍,找出其中最大的可以填入的数则必然就是正确答案。由于时间比较紧张,所以代码很糙……但是居然A了……#include #include #include chars[10][10]; intaa[30]; inta[10][10
u013382399
·
2014-04-15 17:00
uva
位向量枚举法
639 - Don't Get
Rooked
(搜索回溯)
题目:639-Don'tGetRooked题目大意:在给定的棋盘中,看最多可以放多少个棋子。放棋子规则:同一行同一列不可以有两个以上的棋子,除非中间有墙隔着。阶梯思路:让每个棋子从不同的起点开始,然后往后遍历,每个起点都有对应可以放的棋子,取其中的最大值。遍历过程中如果是按先行再列的顺序遍历的话,如果当前已经便利完x,y;那么下一个遍历开始的位置就是x,y+1.注意判断完前面的位置之后,只需要从这
u012997373
·
2014-04-04 09:00
UVa 639 - Don't Get
Rooked
类皇后问题 递归回溯
Don'tGetRooked Inchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwewillconsidersmallchessboards(atmost44)thatcanalsocontainwallsthroughwhichrookscannotmove.Theg
q745401990
·
2014-03-16 12:00
C++
算法
递归
uva
UVa 639 - Don't Get
Rooked
题目链接:UVa639-Don'tGetRooked今天下午去看霍比特人2,无聊的要死,呃,不吐槽了,进入正题。回溯题目,和八皇后有些区别,这道题加上了围墙,而且不限制对角线了,所以说一行就可能有多个棋子。这样的话需要全局回溯,就是说回溯算法里边应该有双重for循环,放置每一个棋子前判断一下当前位置是否合法。开始想当然,很快的写了一个回溯,然后就错了,例子就没有通过。也贴出来,警示一下自己。错误原
fobdddf
·
2014-02-23 22:00
poj1315 Don't Get
Rooked
Don'tGetRookedTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 2134 Accepted: 1359DescriptionInchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwewillconsi
magicnumber
·
2014-01-15 23:00
uva 639 - Don't Get
Rooked
回溯法,注意回溯回来之后状态要恢复,冲突判断是从当前点向四周辐射,直到出界或者遇到墙,如果有遇到其他车,说明冲突。 #include<stdio.h> int n; int board[5][5]; int maxNum; int isConflicted(int i, int j) { int o, p; for (o = i; o >
249326109
·
2014-01-05 22:00
get
[回溯]Don't Get
Rooked
UVA 639
Don'tGetRooked Inchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwewillconsidersmallchessboards(atmost44)thatcanalsocontainwallsthroughwhichrookscannotmove.Th
u011194165
·
2013-11-15 09:00
搜索
ACM
uva
回溯
UVa 639 Don't Get
Rooked
(DFS好题)
639-Don'tGetRookedTimelimit:3.000seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=108&page=show_problem&problem=580Inchess,therookisapiecethatcanmoveanynumberofsqu
synapse7
·
2013-10-25 08:00
C++
ACM
uva
Hoj 1086 Don't Get
Rooked
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1086本题数据范围较小,可以暴力搜索过。如果数据范围大一些的话,可以使用二分图。先以行考虑,每行中,没有墙分割的点集合为一块。这样扫描后会形成rNum块。再以列考虑,每列中,没有墙分割的点集合为一块。这样扫描后会形成cNum块。然后如果行块与列块之间为二分图的左右部分,如果两者之间有个公共区域,那么我们就连
niuox
·
2013-08-20 21:00
POJ1315:Don't Get
Rooked
点击打开题目链接Don'tGetRookedTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 2078 Accepted: 1317DescriptionInchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwew
l383137093
·
2013-08-03 11:00
搜索
DFS
回溯
uva 639 Don't Get
Rooked
(回溯)
Don'tGetRooked Inchess,therookisapiecethatcanmoveanynumberofsquaresverticallyorhorizontally.Inthisproblemwewillconsidersmallchessboards(atmost44)thatcanalsocontainwallsthroughwhichrookscannotmove.Theg
u011328934
·
2013-07-20 13:00
uva 639 Don't Get
Rooked
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=108&page=show_problem&problem=580题目描述: Don'tGetRooked Inchess,therookisapiecethatcanmoveanynumberofsquaresverticallyo
hackerwin7
·
2013-05-17 19:00
uva639 - Don't Get
Rooked
对于这个题,开始弄了个跑20ms的代码,一个小时的优化后,跑了12ms。。。。思路不难,就是把问题分成一步步的。每一步弄成个递归就行了。先贴一下20ms的代码/代码如下:#include charf[5][5]; intn,max; intis_caninset(intc,intl) { if(f[c][l]=='X'||f[c][l]=='/'||f[c][l]=='o')return0; fo
shankeliupo
·
2013-02-21 11:00
UVa 639 Don't Get
Rooked
题目: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=580 最多16个格,2^16=65536可以枚举完,而且很多都是可以剪枝的,用dfs枚举就可以。 要注意的是如果在dfs之前用vis数组标记放下了“车”,那么要在dfs之
Jianquan
·
2012-08-30 23:00
UVa 639
UVa 639 - Don't Get
Rooked
类似“八皇后问题”,但加了“墙”的概念,如果有墙相隔,则同一行墙两边可同时存在两个元素。枚举子集+判断可行性,在枚举子集时,可以进行适当剪枝,如此可以减少很多不必要的枚举,比如:当n==4时,其最大的的“车”的位置为8个,则我们可以加一个计数器,最多将子集的枚举量设为8,超过8则不再往子集中加入元素。代码如下:#include #include #include #include #include
GooMaple
·
2012-08-29 19:00
uva 639 - Don't Get
Rooked
点击打开链接题目意思:给定一个最大为4x4的棋盘,棋盘上面可以放着车还有代表墙的'X',要求对于两个车是不能够连成一条直线的,就是中间有'X'或者是两个的连线为折线解题思路:1暴力枚举解空间,求出解空间的最大的值 2回溯法,通过试探每一点的放与不放,还有判断是否能够满足条件求出最后的最大值代码1(暴力枚举)://暴力枚举2^16种解 //我们知道对于这个搜索的解空间树的解集最多有2的16次方种,
cgl1079743846
·
2012-07-15 09:00
c
存储
uva 639 - Don't Get
Rooked
点击打开链接 题目意思:给定一个最大为4x4的棋盘,棋盘上面可以放着车还有代表墙的'X',要求对于两个车是不能够连成一条直线的,就是中间有'X'或者是两个的连线为折线 解题思路:1 暴力枚举解空间,求出解空间的最大的值 2 回溯法,通过试探每一点的放与不放,还有判断是否能够满足条件求出最后的最大值 代码1(暴力枚举): //暴力枚举2^16种解 //我们知道对于这个搜索的解
isiqi
·
2012-07-15 09:00
get
UVa 639 - Don't Get
Rooked
, 类八皇后问题
639-Don'tGetRooked391859.67%199790.59%题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=108&page=show_problem&problem=580题目类型:暴力,回溯法题目:Inchess,therookisapiecethatcanmo
king_tt
·
2012-07-15 01:00
get
UVa 639 - Don't Get
Rooked
, 类八皇后问题
639 - Don'tGetRooked391859.67%199790.59%题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=108&page=show_problem&problem=580题目类型:暴力,回溯法题目:Inchess,therookisapiecethatcan
shuangde800
·
2012-07-15 01:00
639 Don't Get
Rooked
/* 一次AC,题不难。 找错经历: ①处出错,不能使用sizeof()计算形参中数组长度 ②G的状态应分三种情况讨论。 题意:一个棋盘,放置rook,要求不能在同一行或同一列,除非中间有墙。 思路:回溯+状态存储,G值为0表示有墙,为1表示可放,为-1表示有冲突。 */ #include #include intn; intans; voiddfs1(int(*G)[7],intx,inty)
lhshaoren
·
2012-03-06 06:00
hdu 1315 Don't Get
Rooked
--深搜
/* 本题用深搜,尽可能多的安排rook */ #include charmap[4][4]; intx[20],y[20],c[20],num,n,no; intxing(inti,intj) { if(c[j]==0) return0; if(x[i]!=x[j]&&y[i]!=y[j]) return0; if(x[i]==x[j]) { intk=y[i],l=y[j],t; if(k>l
qq172108805
·
2011-08-03 17:00
UVa 639 Don't Get
Rooked
UVa639Don'tGetRooked数据规模很小,直接搜索即可,每次试着在可以放置的位置上放置。以下是我的代码:#include#includeusing namespace std;const int kMaxn(7);int n,ans,map[kMaxn][kMaxn];void getxy(int depth,int &x,int &y){ x=depth/n; y=dep
心如止水
·
2011-04-18 15:00
639--Don't Get
Rooked
///简单回溯#include#include#defineLOCALchars[7][7];intflag[7][7];intn,max,num,total,k;inttest(intx,inty){inti,j,ok=1;j=y;for(i=x-1;i>=0;i--){if(flag[i][j]==1){ok=0;break;}if(flag[i][j]==-1)break;}for(i=x+
fengyu0556
·
2010-06-02 10:00
ini
PKU POJ 1315 Don't Get
Rooked
/ZOJ ZJU 1002
最近在做深搜,从基础开始复习,据说这道题是挺经典的深搜。 1 #include 2 using namespace std; 3 bool map[5][5]; 4 bool visit[5][5]; 5 int cnt,best,n; 6 bool check(int x,int y) 7 { 8 int i,j; 9 for(i=y;i=1;i--) 19
Headacher
·
2009-01-24 13:00
HOJ 1086 Don't Get
Rooked
解题报告
HOJ1086Don'tGetRooked解题报告题目含义:给一个n*n的方阵,向其中填车,求使他们不能互相攻击的最大棋子数。思路:每一个格有两个元素组成,分别为第i行和第j列,那么可以把行数和列数分别看做两个集合X和Y中的点,他们之间由于每一个格而形成的一一对应的关系将其看做边。如果两条边相交,那么这两个格在同一行或同一列。按照题目的意思,同一行或同一列只能放一个车,所以选出的边不能相交。题中还
听说经常总结是个好习惯
·
2008-08-02 20:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他