网站大量收购独家精品文档,联系QQ:2885784924

.棋盘上的士兵_solution.pdfVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.棋盘上的士兵_solution

Soldier的解题报告 中山纪念中学高二(19)班 陈启峰 January 25, 2007 题目 在一个 N 行 M 列的棋盘上,摆放着 K 个士兵,一个士兵占据一个 格子(可能有多个士兵占据同一个格子)。 第 i 个士兵控制棋盘上所有与它相距不超过 Ri 的格子。 两个格子(X1,Y1)、(X2,Y2)间的距离定义为|X1-X2|+|Y1-Y2|。 现在给出 K 个士兵的坐标,请你写一个程序返回被控制的格子的 总数。 输入格式 第 1 行: 三个正整数 N、M 和 K。 第 2 ~ K+1 行: 每行三个自然数 X 、Y 和 R 。 X 表示士兵所在的行的编号; Y 表示士兵所在的列的编号; R 表示士兵的控制范围。 输出格式 第 1 行: 被控制的格子的总数。 数据范围 在 15%的数据中,1≤N,M ≤1000,1≤K≤100 在 25% 的数据中,1≤N,M ≤5000,1≤K≤100 在 35% 的数据中,1≤N,M ≤10000,1≤K≤100 在 50%的数据中,1≤N,M ≤100000,1≤K≤100 在 65%的数据中,1≤N,M ≤100000000,1≤K≤100 在 80%的数据中,1≤N,M ≤100000000,1≤K≤1000 在 100%的数据中,1≤N,M ≤100000000,1≤K≤100000 样例输入 4 4 3 1 1 1 3 1 1 3 3 1 样例输出 10 初步分析: 看完这一个题之后,可能很多读者都对此题没有思路。所以我们 首先得分析一下一个棋盘上的士兵控制的区域到底是什么样子的。 1、画一个中等大小的棋盘: 图1: 一个 10 ×10 的棋盘 2、放一些士兵在棋盘中,画出它控制的所有格子。 图 2 : 黑点表示士兵,红点和黑点是被控制的方地 当棋盘上只放一个士兵的时候,被控制的区域就像一个偏斜 45 度的正方形。我们可以把这些区域看成一个偏斜 45 度的完美正方形 吗?再看看下图: 图 3 :黑点表示士兵,红点和黑点是被控制的方地 这样看来就没有什么规律了。比如最右边的士兵控制的区域有一 半被棋盘切去了。再说,除去这棋盘的限制地把一块区域都看成一个 正方形,我们又该怎么样转化,又该如何等价起来呢?我估计这问题 不易被解决。 深入分析: 我们尝试将棋盘奇偶染色。这样图2被转达化为下图 图 5 : 黑点表示士兵,红、绿和黑点是被控制的地方 这样来看,该图中的红点和绿点所组成的点集可以分别被转化一 个正方形: (1)绿色: 将每一个绿点绕其左下点逆时针转 45 度。 图 6 : 绿点是被控制的地方 看到了吗?只要把每个方形放大就是一个大的正方形了。为了计 算处理,我们同建立起直角坐标系: 图 7 : 转化后的一个大正方形 我们设正方形的左下角的坐标(x,y)表示一个正方形。这样原来的 x y +y x − (x,y)就变成了( , ) 。 2 2 (2)红色: 情况与绿色的相似。 在这样分析之后,我们的思路就开始清淅了。 算法分析: 正当前途一片光明时,N×M 的棋盘这一限制破坏这优美的性质 呢。怎么样办呢?很多做这题的人都卡在了这一个问题上。其实我们 可以先不考虑棋盘地区性计算士兵的控制面积,然后再算棋盘之外的 控制面积。 这样,算法的总体框架就出来: 子算法 1——忽略棋盘后

文档评论(0)

zqianqxf02 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档