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
Rooks
UVa 1297 - The Minimum Number of
Rooks
这确实是一道可以被放在训练指南advanced分类里的dp题提示:1.强烈建议自己尝试去手动找答案,这能帮你理解"车"攻击的特点(想象一下,把整个图横向剖分成数行,然后把每一行当成一个列的区间)2.我构造的dp方程是基于两点贪心:每一行至多一个车可以构造这样的最优答案,行数越大的车列数也越大,即所有车呈现一个斜向右下的一个形状,可以反证说明这一点,注意,并不是所有最优解都满足这一贪心性质,但是一定
Fuxey
·
2015-10-21 18:00
dp
uva
uva 10615 -
Rooks
(完美匹配)
题目链接:uva10615-
Rooks
显而易见,需要用到颜色种类即为行列中棋子个数的最大值k。问题是如何构造,建图,行和列去匹配,每次匹配一种颜色,将匹配到的边删除即可。
u011328934
·
2015-09-23 21:00
南邮 OJ 1390
Rooks
Rooks
时间限制(普通/Java) : 1000MS/ 3000MS 运行内存限制:65536KByte总提交:62 测试通过:43 比赛描述JakeandSullyareplayingaroundwithachessboardonenightafterworkingwiththeiravatarsallday.Theydecideitwouldbeinterestingt
changshu1
·
2015-08-05 15:00
ACM
南邮OJ
Rooks
LightOJ1005---
Rooks
(简单组合数学)
Arookisapieceusedinthegameofchesswhichisplayedonaboardofsquaregrids.Arookcanonlymoveverticallyorhorizontallyfromitscurrentpositionandtworooksattackeachotherifoneisonthepathoftheother.Inthefollowingfig
Guard_Mine
·
2015-06-03 21:00
组合数学
11134 - Fabled
Rooks
因为行和列是无关的,所以可以单独处理,将问题分解成两个,那么需要求的就是在这n个区间里任选一个数,且这个数不重复。这很像之前紫书上将的区间问题,可以采取贪心的策略,将区间(a,b)先按照b从小到大排,再按照a从小到大排,然后在区间中的还没有被选的数字里优先挑选较小的数字。但是由于这样经过排序后原来的顺序已经打乱了,所以预先给每个区间分配一个id,一个v保存选的值,然后再按照id还原顺序就好了。#i
weizhuwyzc000
·
2015-05-14 18:00
ACM
uva
【BNU】33943 Super
Rooks
on Chessboard 【FFT】
【BNU】33943SuperRooksonChessboardUVA上的题,然而我怎么会蠢到去UVA呢!(其实是百度首先跳出来的是BNU→_→)题目分析:设numx为N个车没有覆盖的行数,numy为N个车没有覆盖的列数。首先我们考虑没有主对角线覆盖这一条件时,总共的没有被覆盖的面积就是numx∗numy。现在我们考虑主对角线影响。考虑没有被车覆盖的行的集合R={r1,r2,r3...rm}考虑没
u013368721
·
2015-04-29 15:00
fft
HDU3160
Rooks
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17335题意:给定一个棋盘,棋盘上有一些必须要覆盖的点。现在可以放一个车,车可以消掉同行和同列上的点。思路:看题解做的。假定选定某些行,函数为m,在剩余空行上遍历,若空行列上还存在点,则标记该列。标记完以后,统计总共几个列被标记,设为n。因为一个车可以同时消去行和列,
beihai2013
·
2015-04-21 16:00
个人赛
Uva 11134 Fabled
Rooks
(问题分解 + 贪心放置)
题意:给你n*n的棋盘,让放置n个车使他们之间并不能相互攻击 附加条件是给定n个车的放置区间用左上角和右下角的坐标来表示解题思路:首先明确横向的约束和纵向的约束其实并不互相影响所以可以对横向和纵向单独求解把问题变成两个一维的区间选点问题来求解另外在取点的时候有贪心的思路在里面对于n个区间应该先选择区间中r最小的区间进行放置可放置的点可以简单认为这是因为r越小的区间其选择的灵活性就越低。我刚开始的时
u013382399
·
2015-04-08 22:00
uva
SGU - 222 - Little
Rooks
(组合数)
222.LittleRookstimelimitpertest:0.25sec.memorylimitpertest:65536KBinput:standardoutput:standardInspiredbya"LittleBishops"problem,Petyanowwantstosolveproblemforrooks. Arookisapieceusedinthegameofchessw
u014355480
·
2015-03-16 23:00
ACM
sgu
组合数
UVALive 6525 Attacking
rooks
二分匹配 经典题
题目链接:点击打开链接题意:给定n*n的棋盘,可以在'.'上摆象棋中的车(X是墙壁)使得任意两个车都不能互相攻击到问:最多能摆多少个车。思路:二分匹配1、若没有X,那么做法就是X点集为行,Y点集为列,对于图上的每个点所在的行和列(x,y)建一条边x->y2、有了X,那么对于每个点所在的上方能接触到的X必须各不相同,所以给每个X标号,第一个X标记成n+13、这样X点集就是行(1-n)和n+1-siz
qq574857122
·
2014-10-30 00:00
HNU13028Attacking
rooks
(二分匹配,一行变多行,一列变多列)
AttackingrooksTimeLimit:20000ms,SpecialTimeLimit:50000ms,MemoryLimit:65536KBTotalsubmitusers:12,Acceptedusers:7Problem13028:NospecialjudgementProblemdescriptionChessinspiredproblemsareacommonsourceofe
u010372095
·
2014-10-02 17:00
map
二分匹配
(白书训练计划)UVa 11134 Fabled
Rooks
(贪心)
题目地址:UVa11134这题因为行与列是无关的,互无影响的。所以可以将行或列分开来计算。这就相当于转化成了在期间[1,n]内选择n个不同的整数,使得第i个整数在闭区间[Li,Ri]内。这就转换成了一个贪心问题了。但是注意不能先按照左端点排序,再按右端点排序,然后尽量往左边放,比如,(1,1),(1,3),(2,2),这样是不对的,应该按右端点为主关键字排序,再按左端点为次关键字排序。看到网上的方
u013013910
·
2014-09-05 10:00
编程
算法
C语言
ACM
UVA11134- Fabled
Rooks
题目链接题意:在n*n棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车在一个给定的矩形之内。思路:刚开始以为是n皇后的问题,但是本题只要水平和竖直才能攻击到,并没有斜线的约束。所以可以判断出行和列是互相没有影响的,那么只要分别对行和列进行贪心操作,先按照左端点值从小到大排序,然后用优先队列维护,先处理右端点小的。做法与这题类似 UVA1422#include #include #include
u011345461
·
2014-08-10 20:00
11134-Fabled
Rooks
【贪心 + 优先队列 + 思想转化】
这题主要学习了一下贪心的方法,和优先队列priority_queue的使用贪心策略就是每次左边界小的并且右边界小的出队列,其次需要根据位置不断更新左边边界值#include #include #include #include #include #include #include #include #include #include usingnamespacestd; #defineMAXD50
u013451221
·
2014-07-24 16:00
uva 11134 - Fabled
Rooks
(主要在贪心方法及其实现)
#用到了贪心方法。#这个贪心刚开始想错了方法,后来想到了新的方法,AC刚开始错在了按左端点升序排序并从左往右取最左端能取的格子,这个方法显然不能符合要求比如下面这组数据:21133 11332222错误代码:#include #include #include #include usingnamespacestd; structnote { intx1,x2,y1,y2,x,y; intnum;
u013382399
·
2014-07-24 11:00
uva
Uva-10615-
Rooks
这个题是求给棋盘上的车涂色,使得满足要求。这个题白书上面放的二分图匹配,最开始确实没想到要进行补边操作,很明显的是答案一定是所有点的度的最大值,关键是对不足答案值的点要进行补边,这个是参考别人代码才知道的。代码:#include #include #include usingnamespacestd; constintmaxn=110; constintmaxm=maxn*maxn; charma
z309241990
·
2014-07-03 09:00
二分图匹配
UVa live6525Attacking
rooks
(二分最大匹配之最大匹配)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4536Chessinspiredproblemsareacommonsourceofexercisesinalgorithmsclasses.Startingwiththewellk
u013013910
·
2014-06-06 09:00
编程
算法
C语言
poj
二分图匹配
UVALive 6525 Attacking
rooks
(二分图最大匹配)
Attackingrooks在一个n*n的图中,‘X’代表卒,在‘.’的地方放置尽量多的车,使得它们不互相攻击。问最多可放置车的数目。和FireNet一样,但这里图是100*100的,搜索会超时(其实我还脑残的试了试).正解是二分图匹配,将每行中连续为.的作为X集合中一个点,同样,将每列中连续为.的点作为Y集合中的一个点。对原图中每个'.',将其对应的X集合和Y集合中的标号建边,便形成了二分图,对
u013081425
·
2014-05-07 15:00
二分图
UVa:11134 Fabled
Rooks
非常关键的一点是行和列是独立的,不相互影响。所以判断车是否相互攻击只需要行不相互攻击,列也不相互攻击即可。这样二维可以转化成两个一维。一维的问题是,在给定的每个区间上选一个点使得该点不再其他区间上出现。贪心,优先给右端点小的线段选点即可。类似于上一个题,我用优先队列做得。#include #include #include #include #include #include #inc
kkkwjx
·
2014-02-13 17:00
优先队列
Uva11134 Fabled
Rooks
(贪心,优先级队列)
题目链接:FabledRooks 终于给我过了,这道题目拿到手就相当然的以为是八皇后问题=_=。然后深搜上去,果断超时了。确实,5000的数据规模,深搜的时间复杂度最大O(n3),确实欠考虑。 解题关键: 贪心,注意到x和y的坐标是相互独立的,可以为每个点先分配x点坐标,再分配y点坐标。对于每个点的x(y)坐标,按照L的大小来从小到大排序,L相等的,比较R的大 小。优先
tonghu2010
·
2013-12-23 21:00
UVA 11134 - Fabled
Rooks
(贪心+优先队列)
Wewouldliketoplace n
rooks
,1 ≤ n ≤ 5000,ona n×n boardsubjecttothefollowingrestrictionsThe i-throokcanonlybeplacedwithintherectanglegivenbyitsleft-uppercorner
u011217342
·
2013-12-19 21:00
uva 11134 - Fabled
Rooks
(问题转换+优先队列)
题目链接:uva11134-FabledRooks题目大意:给出n,表示要在n*n的矩阵上放置n个车,并且保证第i辆车在第i个区间上,每个区间给出左上角和右小角的坐标。另要求任意两个车之间不能互相攻击。解题思路:因为要保证说每两个车之间不能互相攻击,那么即任意行列都不能摆放两个以上的车,转而言之可以看成是将每一行或列分配给每辆车。如果行和列和起来考虑的话复杂度太高了,但是行和列的分配又互相不影响,
u011328934
·
2013-12-18 21:00
uva 11134 - Fabled
Rooks
题意:你的任务是在n*n的棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车要在一个给定的矩形Ri之内思路:首先明确的是对于每一辆车它所在的行和列是不互相影响的,那么分别讨论每一辆车的行和列,像八皇后问题一样讨论没一行或列放什么,对于一辆车来说贪心的将它放在尽可能靠前的位置显然不会是更差的#include #include #include #include usingnamespacestd;
u011345136
·
2013-12-17 13:00
sgu 222 - Little
Rooks
简单的状态压缩DP
每行的状态用二进制数表示~~自己好些地方没细心~导致WA了很久..Program:#include #include #include #include #include #include #defineoo1000000007 #definelllonglong #definepiacos(-1.0) #defineMAXN505 usingnamespacestd; lldp[12][1
kk303
·
2013-07-14 20:00
light oj 1005 -
Rooks
(组合数学)
题目链接题意:在一个n*n的棋盘上放m个车,使得各个车之间不相互攻击。有多少种放法?组合数学解法 现在n行中选出m行,C(n,m),再在n列中选出m列随便放A(n,m),答案为C(n,m)*A(n,m)。#include #include typedef__int64LL; LLA(intn,intm) { LLans=1; for(inti=n-m+1;i<=n;i++) ans*=i;
xindoo
·
2013-05-06 20:00
动态规划
状态压缩dp
uva 11134 Fabled
Rooks
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2075题目大意:在一个n*n的棋盘上放置n个车,使得它们之间都不能互相攻击(任意两个车都不能同行或同列),并且,对于第i个车,限制它只能放在一个矩形区域内,(xli, yli),
shuangde800
·
2013-03-09 14:00
uva 11134 Fabled
Rooks
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2075 题目大意: 在一个n*n的棋盘上放置n个车,使得它们之间都不能互相攻击(任意两个车都不能同行或同列),并且,对于第i个车,限制它只
king_tt
·
2013-03-09 14:00
uva
Fabled
Rooks
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#pragmacomment(linker,"/STA
gyarenas
·
2012-11-30 21:00
UVA 11134 Fabled
Rooks
UVA_11134 实际上行和列是独立的,也就是说不会因为rook行位置的不同而影响其列位置上的摆放,反之亦然。 那么我们不妨先将行号分配给各个rook,再将列号分配给各个rook。 单就分配行号而言,我们可以枚举1-N这N个行号,当前这个号码应当分配给可以分配的并且xri最小的那个rook,因为这样至少不会使结果变得更糟,至于对这个贪心的证明就暂且略过了。 这个题目和LA_425
Staginner
·
2012-11-09 23:00
上一页
1
2
下一页
按字母分类:
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
其他