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
Peaceful
Rooks
思路:如果是本来就位于对角线上的点,那么自然就没有必要进行移动了,否则就是在浪费操作次数。那么不在对角线上的点一定需要操作一次,竖直移动或者水平移动到对角线上。但是我们还发现可能会有n个点构成一个环,就像样例3一样。这个时候我们可以先把其中一个点移到空的行或列上,然后剩下的n-1个点移到对角线上,然后再把原来一出去的那个点移回到对角线上。所以当n个点够成一个环时,他们的贡献是n+1。到这里这个题目
临江浪怀柔ℳ
·
2024-01-24 07:30
c语言
c++
算法
Peaceful
Rooks
C.PeacefulRookstimelimitpertest1secondmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputYouaregivenan×nn×nchessboard.Rowsandcolumnsoftheboardarenumberedfrom11tonn.Cell(x,y)(x,y)lieso
sdau_blue
·
2024-01-12 23:49
图论——并查集
Rooks
Defenders - 树状数组
题面分析三种操作,1.在(x,y)(x,y)(x,y)位置放置一个棋子。2.将(x,y)(x,y)(x,y)位置的棋子拿走。3.判断(x1,y1)(x1,y1)(x1,y1)为左上角,(x2,y2)(x2,y2)(x2,y2)为右下角的矩形是否被棋子攻击。这里有个误区就是棋子攻击一个格子要么横坐标相等要么纵坐标相等,或者棋子和格子在同一位置,所有矩形被攻击是指他的每一行都有被攻击的棋子,或者他的每
Wy. Lsy
·
2023-11-19 02:51
算法
c++
树状数组
ChatGPT教你5分钟解锁国际象棋技能
学习国际象棋可以分为以下几个步骤:学习棋盘和棋子:国际象棋的棋盘是一个8x8的格子,棋子包括八个棋卒,两个车(
rooks
),两个马(knights),两个象(bishops),一个皇后(queen)和一个国
AIGCTribe
·
2023-10-17 20:59
chatgpt
Peaceful
Rooks
CodeForces - 1411C
Youaregivenan×nchessboard.Rowsandcolumnsoftheboardarenumberedfrom1ton.Cell(x,y)liesontheintersectionofcolumnnumberxandrownumbery.Rookisachesspiece,thatcaninoneturnmoveanynumberofcellsverticallyorhoriz
the animal
·
2023-06-13 21:08
Codeforces 524E
Rooks
and Rectangles 线段树
区域安全的check方法就是,每行都有哨兵或者每列都有哨兵,然后我们用y建线段树,维护在每个y上的哨兵的x的最值就好啦。#include#defineLLlonglong#definefifirst#definesesecond#definemkmake_pair#definePLLpair#definePLIpair#definePIIpair#defineSZ(x)((int)x.size()
afd5154
·
2020-09-15 22:11
UVA - 10615
Rooks
(二分图匹配 + 枚举)
题目大意:给出一个N*N的棋盘,上面放了一些车。现在要用尽量少的颜色对这些车进行染色,使得同一行同一列的任意两个车的颜色不同解题思路:首先,先统计一下需要染多少种颜色。需要染多少种颜色,是由一行或者一列的车的最大数量决定的。接着枚举一下每种颜色(假设颜色为k种),再决定哪些地方需要染哪些颜色,决定哪些地方染哪些颜色,这就由二分图匹配来决定了首先,先建立这个二分图。如何建立这个二分图呢,将所有车的位
暗金色
·
2020-09-11 00:12
ACM-图论-二分图
UVA 10615
Rooks
题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=11&page=show_problem&problem=1556题意:一个NXN棋盘,车管理横纵两条线,在任何一个车管理的区域都不能放与自己相同的颜色车。求最少可以用几种颜色涂车,使车两两之间不发生冲突,输出填色一组情况即可。分析:二分
论菜鸟的自我修养
·
2020-08-23 08:21
图论:二分图
(白书训练计划)UVa 11134 Fabled
Rooks
(贪心)
题目地址:UVa11134这题因为行与列是无关的,互无影响的。所以可以将行或列分开来计算。这就相当于转化成了在期间[1,n]内选择n个不同的整数,使得第i个整数在闭区间[Li,Ri]内。这就转换成了一个贪心问题了。但是注意不能先按照左端点排序,再按右端点排序,然后尽量往左边放,比如,(1,1),(1,3),(2,2),这样是不对的,应该按右端点为主关键字排序,再按左端点为次关键字排序。看到网上的方
Aerolite坠落
·
2020-08-10 22:27
瞎搞题
Light OJ Dynamic Programming
免费做一样新1004-MonkeyBananaProblem号码塔1005-
Rooks
排列1013-LoveCalculatorLCS变形dp[i][j][k]对于第一个字符串i到jLCS为k的方案数1068
weixin_34067102
·
2020-07-29 12:44
codeforcs 1068 C Colored
Rooks
cf1068C构造题题意给你n个颜色m个关系颜色和颜色有关系就是他们在一行或者在一列可以相邻没关系就不能在一行不能在一列不能相邻我们简单构造一下你把vis[a][b]打上标记有关系的你就填补行用颜色作为他们的列这样构造换个关系就升行点可以构造很多所以这个做法就可以了具体画画就出来了#include#include#include#include#include#include#includeusi
ljq--linuxer
·
2020-07-14 11:34
ACM
Codeforces
Codeforces 524 E
Rooks
and Rectangles —— 线段树+sorting,思维
Thisway题意:现在有一张n*m的棋盘,上面放着k个车,车的攻击范围是它所处的这一行或这一列。q个询问,每次问你如果只选择一个矩形的范围,每个格子是否都处在被攻击的状态中。题解:补一下以前没做出来的题目,现在看看发现其实还是蛮简单的。首先如果每个格子处在被攻击的状态之下,那么要么每行或者每列有一个车。那么我们就需要一个数据结构能够查询矩形中是否每行或者每列都有车。很明显直接查是很难的,至少我一
天翼之城
·
2020-07-08 07:07
想法
线段树
UVA11134 传说中的车 Fabled
Rooks
首先,根据数据范围,可以得到这是一题O(N2)考虑贪心发现行和列是不相关的,于是可以把他们分成两个一维区间问题,也就是在线段中选出点使得每个线段中都有一个点,求出方案。先考虑尽量不对后面造成影响,也就是留后路,所以前面要尽量选靠前的,按照右端点排序,分别处理。最后记得按原序号输出。#includeusingnamespacestd;intn;boolb1[5005],b2[5005];struct
蒟蒻CoderCJH
·
2019-10-02 11:00
[JZOJ5126]棋盘/[HackerRank-HourRank12]Jumping
Rooks
题目大意给定一个n×n的棋盘,棋盘上每个位置要么为空要么为障碍。定义棋盘上两个位置(x,y)与(u,v)能互相攻击当且仅当满足以下两个条件:∙ x=u或y=v∙ (x,y)与(u,v)之间的所有位置,均不是障碍。有q个询问,每个询问给定ki,要求从棋盘中选出ki个空位置来放棋子,问最少互相能攻击到的棋子对数是多少?n≤50,q≤104,k≤棋盘中空位置数量题目分析考虑将所有的行连通块和列连通块提出
a_crazy_czy
·
2017-06-02 21:00
费用流
OI
hackerrank
11134 - Fabled
Rooks
FabledRooksWewouldliketoplacenrooks,1≤n≤5000,onan×nboardsubjecttothefollowingrestrictionsThei-throokcanonlybeplacedwithintherectanglegivenbyitsleft-uppercorner(xli,yli)anditsright-lowercorner(xri,yri
q547550831
·
2016-06-07 14:00
ACM
uva
UVa11134
UVA 11134 Fabled
Rooks
(贪心法,区间与选点问题)
x轴,y轴不相关,所以分开考虑贪心法可以这样思考,不同于定区间选点,而是定点选区间,所以理所当然,要选占用1~col最多位置的区间(因为该地方已经放置好),且尽可能保留占用col+1~n的位置区间为以后考虑;那么我们要从col=1~n放,对于每个col选取[a,b]中1)a最小2)a相同时b最小的区间;每选中一个区间就把他抹掉;为什么那么选的原因:1)a最小:因为col是从1到n选的每次当然要利用
qq_34446253
·
2016-05-11 21:00
A -
Rooks
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29041#problem/A简单组合数A- RooksTimeLimit:1000MS MemoryLimit:32768KB 64bitIOFormat:%lld&%lluSubmit Status Practice LightOJ1005DescriptionArook
glu_cky
·
2016-05-09 17: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个车,限制它只能放在一个矩形区域内,(xli, yli),
u014258433
·
2016-04-28 00:00
ACM
贪心
好题
light oj1005
Rooks
思路:先从n行里面选择m行,然后再乘上一个全排列A(n,m)就行了#include usingnamespacestd; constintinf=0x3f3f3f3f; #defineLLlonglong LLC[33][33]; intmain(){ C[0][0]=1; for(inti=1;i<=30;++i){ C[i][0]=C[i][i]=1; C[i][1]=i; for(int
qq_21057881
·
2016-04-23 23:00
lightoj 1005
ROOKS
(组合数)
Arookisapieceusedinthegameofchesswhichisplayedonaboardofsquaregrids.Arookcanonlymoveverticallyorhorizontallyfromitscurrentpositionandtworooksattackeachotherifoneisonthepathoftheother.Inthefollowingfig
dml_96
·
2016-04-01 21:00
UVA 11134 Fabled
Rooks
在给定的一个棋盘中按照要求放置n个rook,每个rook给定一个矩形范围,也就是说这个rook只能放在这个矩形范围之内。同时任何两个rook不同行和列。显然行的选择不影响列的选择,反之亦然。所以我们可以分开处理。比如只看列:每个rook就有个一维范围,然后我们根据第二键值排序,然后吧前面的尽量排在前面。这样的谈心显然是最优的。某个rook不能放置的话就标记下。/******************
KIJamesQi
·
2016-03-19 09:00
谈心
UVA 11134(p237)----Fabled
Rooks
#include #definedebu usingnamespacestd; constintmaxn=5*1e3+50; structpoint { intl,r,id; }; intn,v[maxn]; pointa[maxn],b[maxn]; intansx[maxn],ansy[maxn]; intcmp(pointa,pointb) { if(a.r==b.r)returna.l
wang2147483647
·
2016-03-10 21:00
HNU13028Attacking
rooks
(二分匹配,一行变多行,一列变多列)
AttackingrooksTimeLimit:20000ms,SpecialTimeLimit:50000ms,MemoryLimit:65536KBTotalsubmitusers:12,Acceptedusers:7Problem13028:NospecialjudgementProblemdescriptionChessinspiredproblemsareacommonsourceofe
mengfanrong
·
2016-02-17 14:00
传说中的车(Fabled
Rooks
,UVa 11134)
AC通道:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2075传说中的车Description你的任务是在n∗n的棋盘上放n(n≤5000)个车,使得任意两个车不相互攻击,且第i个车在一个给定的矩形Ri之内。用4个整数xli,yli,xri,yri(1
XY20130630
·
2016-02-12 10:00
并查集
贪心
问题分解
HackerRank "Vertical
Rooks
"
Pleasenote:VROOKcannotgoback-ward-thatleadstoasimplevariationtoGameofNim:justXOR.t=int(input()) for_inrange(t): n=int(input()) #Getinput p1=[] for_inrange(n):p1.append(int(input())) p2=[] for_i
Tonix
·
2016-02-11 05:00
LightOJ1005
Rooks
(DP/排列组合)
题目是在n*n的棋盘上放k个车使其不互相攻击的方案数。首先可以明确的是n*n最多只能合法地放n个车,即每一行都指派一个列去放车。dp[i][j]表示棋盘前i行总共放了j个车的方案数dp[0][0]=1转移就是从第i-1行转移到第i行,对于第i行要嘛放上一个车要嘛不放,放的话有n-j-1种方法。即dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*(n-j-1)。1#include
WABoss
·
2016-02-01 20:00
[UVA 10615]
Rooks
[二分图匹配]
题目链接:[UVA10615]
Rooks
[二分图匹配]题意分析:给图中的每个'*'都涂上颜色,使得任意一行任意一列颜色都不重复,输出需要的最少颜色数,并输出解决方案。
CatGlory
·
2015-12-06 23:00
二分图匹配
uva11134 Fabled
Rooks
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=100977#problem/D#include #defineREP(i,a,b)for(inti=a;i>n,n){ REP(i,1,n)rec[i].read(i); REP(i,1,n)seg[i]={rec[i].xl,rec[i].xr,i}; priority_queu
__560
·
2015-11-30 17:00
lightOJ 1005 -
Rooks
简单的数学题,排列组合的问题#include #include usingnamespacestd; typedeflonglongll; llc(llm,lln) { llans=1,i; for(i=1;i>T; while(T--) { lln,k; cin>>n>>k; if(k>n) { printf("Case%lld:0\n",++cas); continue; } llres
MrSiz
·
2015-11-24 00:00
C++
排列组合
[SGU222 Little
Rooks
]
[关键字]:数学 组合计数 [题目大意]:在一个n*n的棋盘里放k个车,问使它们不能互相攻击的摆放方案有多少种。 //==================================================================== [分析]:一开始推了半天递推公式也没解决了判重等一系列问题。然后在仔细一看题,太简单了……首先每一行每一列只能有一个车,所以找出k个车所摆
·
2015-11-13 00:14
OO
UVa11134 - Fabled
Rooks
nbsp; Problem F: Fabled
Rooks
·
2015-11-12 11:58
uva
01_传说中的车(Fabled
Rooks
UVa 11134 贪心问题)
问题来源:刘汝佳《算法竞赛入门经典--训练指南》 P81: 问题描述:你的任务是在n*n(1<=n<=5000)的棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车在一个给定的矩形R之内。 问题分析:1.题中最关键的一点是每辆车的x坐标和y坐标可以分开考虑(他们互不影响),不然会变得很复杂,则题目变成两次区间选点问题:使得每辆车在给定的范围内选一个点,任何两辆车不能选同一个点。
·
2015-11-11 16:24
uva
SGU 222 Little
Rooks
排列组合 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int n, k; 5 int COM(int n, int m) 6 { 7 if(m > n - m) m = n - m; 8 int i, j, res = 1;
·
2015-11-11 07:30
OO
UVA 11134 Fabled
Rooks
贪心
题目链接:UVA - 11134 题意描述:在一个n*n(1<=n<=5000)的棋盘上放置n个车,每个车都只能在给定的一个矩形里放置,使其n个车两两不在同一行和同一列,判断并给出解决方案。 算法分析:刚开始没有思路,后来看了别人的博客有了一点想法。我们把矩形的行和列分开解决,即n个车首先不能放置在同一行,然后判断n个车不能放置在同一列,如果都满足的话,即有正确的方法,否则就不行。
·
2015-11-11 03:43
uva
LightOJ 1005 -
Rooks
(计数)
题目链接:LightOJ1005-
Rooks
代码#include #include #include usingnamespacestd; typedeflonglongll; intN,K; llC
u011328934
·
2015-11-09 20:00
LightOJ 1005
Rooks
(组合数学)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1005 题意:在一个n*n的棋盘上放m个车,使得各个车之间不相互攻击。有多少种放法? 思路:先在n行中选出m行,C(n,m),再在n列中选出m列随便放A(n,m),答案为C(n,m)*A(n,m)。 #include <iostream> #includ
·
2015-11-08 11:26
OO
UVa 11134 (区间上的贪心) Fabled
Rooks
这道题真是WA得我心力交瘁,好讨厌的感觉啊! 简直木有写题解的心情了 题意: n×n的棋盘里,放置n个车,使得任意两车不同行且不同列,且第i个车必须放在给定的第i个矩形范围内。输出一种方案,即每个车的坐标,无解的话则输出“IMPOSSIBLE” 行和列是独立的,所以可以分开处理,将二维的转化成了一维区间上的取点问题: 有一个长度为n的区间,还有n个
·
2015-11-02 11:59
uva
SGU 222.Little
Rooks
题意: 求在n*n(n<10)的棋盘上放k个车(水平竖直行走)的方案数。 Solution SGU220的简化版。直接DP 显然当k>n时,ans=0; f[i][j]代表在前n行放了j个棋子. 转移方程 f[i][j]=f[i-1][j]+f[i-1][j-1]*(n-j+1);
·
2015-11-01 12:08
OO
Rooks
(DP)
题意: 给n(<=250)条水平网格,然后在上面放k棋子,每行每列都只能放一个。求方法总数。 Solution: 简单的DP, 只要对给出的水平长度排个序就很容易处理了。 需要用到高精度。 偷懒用java写了 import java.util.*; imp
·
2015-11-01 09:26
OO
uva 11134 - Fabled
Rooks
(问题转换+优先队列)
题目链接:uva 11134 - Fabled
Rooks
题目大意:给出n,表示要在n*n的矩阵上放置n个车,并且保证第i辆车在第i个区间上,每个区间给出左上角和右小角的坐标。
·
2015-10-31 14:48
优先队列
Light OJ Dynamic Programming
免费做一样新 1004 - Monkey Banana Problem 号码塔 1005 -
Rooks
排列 1013 - Love Calculator LCS变形 dp[i][j][k]对于第一个字符串
·
2015-10-31 11:40
UVA 11134 - Fabled
Rooks
(贪心+优先队列)
We would like to place n
rooks
, 1 ≤ n ≤ 5000, on a n×n
·
2015-10-31 09:12
优先队列
SGU 222 Little
Rooks
SGU_222 最近刚学了插头dp,所以就用插头dp那个模式写了这个题。 可以用f[i][j][st]表示推到第i行第j列时,行和列上rook的状态为st时方案的种数。 #include<stdio.h> #include<string.h> #define HASH 30007 #define SIZE 1000010 int N, K, rst, cst
·
2015-10-31 09:13
OO
Rooks
and Rectangles 线段树 定点修改,区间最小值
Rooks
and Rectangles Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset
·
2015-10-31 08:01
round
lightoj 1005 -
Rooks
【组合数学】
1005-RooksPDF(English)StatisticsForumTimeLimit: 1second(s)MemoryLimit: 32MBArookisapieceusedinthegameofchesswhichisplayedonaboardofsquaregrids.Arookcanonlymoveverticallyorhorizontallyfromitscurrentpos
chenzhenyu123456
·
2015-10-25 13:00
Lightoj 1005 -
Rooks
(概率选取)
1005-RooksPDF(English)StatisticsForumTimeLimit: 1second(s)MemoryLimit: 32MBArookisapieceusedinthegameofchesswhichisplayedonaboardofsquaregrids.Arookcanonlymoveverticallyorhorizontallyfromitscurrentpos
helloiamclh
·
2015-10-25 12:00
LightOJ 1005
Rooks
【排列组合】
1005-RooksPDF(English)StatisticsForumTimeLimit: 1second(s)MemoryLimit: 32MBArookisapieceusedinthegameofchesswhichisplayedonaboardofsquaregrids.Arookcanonlymoveverticallyorhorizontallyfromitscurrentpos
liuke19950717
·
2015-10-24 20:00
lightoj--1005--
Rooks
(组合数)
RooksTimeLimit:1000MS MemoryLimit:32768KB 64bitIOFormat:%lld&%lluSubmitStatusDescriptionArookisapieceusedinthegameofchesswhichisplayedonaboardofsquaregrids.Arookcanonlymoveverticallyorhorizontallyfrom
qq_29963431
·
2015-10-24 19:00
sgu - 269 -
Rooks
题意:给出一个n行的棋盘,每行的长度任意,问在该棋盘中放k个车(不能同行或者同列)有多少种放法(n <= 250, 每行的长度 <= 250)。 题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=269 ——>>开始的时候冒险用dfs去做,结果TLE了。。。改dp,大数长度开小点WA,开大点MLE……最后改
·
2015-10-23 08:35
OO
UVA 11134 Fabled
Rooks
贪心+优先队列+问题分解 对x,y 分开处理 当 xl<cnt(当前处理行)时,不能简单的选择cnt,而是应该让xl=cnt 并重新加入优先队列。(y的处理同上) 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #i
·
2015-10-23 08:22
uva
上一页
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
其他