黑白三角 by curimit.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  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文档。上传文档
查看更多
样例 N=2 黑点坐标:(1,1) (2,1) 白点坐标:(1,2) (3,2) D=1 样例 样例 漂亮三角形数最小的连法: 1黑2白的漂亮三角形如何构成 1黑2白的漂亮三角形 1黑2白的漂亮三角形 1黑2白的漂亮三角形数的统计 1黑2白的漂亮三角形数的统计 1黑2白的漂亮三角形数的统计 1黑2白的漂亮三角形数的统计 全部漂亮三角形数的统计 计算P、Q数组 计算P、Q数组 计算P、Q数组 计算P、Q数组 * 本题出自VIJOS P1486 下面简述一下题意: 首先,给出在平面内n个白点与n个黑点和一个常数D。 然后,在白点与黑点之间连有向边。 当黑点与白点的曼哈顿距离大于D时,从白点指向黑点,否则从黑点指向白点。 最后,随机连边,将这个图补成一个有向完全图。 然后请你统计这张图中漂亮三角形的数目的最大值和最小值。 漂亮三角形:含有三个节点i,j,k,且它们间边是i→j,j→k,k→i 并且这个三角形三个顶点的颜色不全相同。 注:曼哈顿距离为 数据范围:N100000 图 黑点1与白点1曼哈顿距离=1,所以黑点1→白点1 黑点1与白点2曼哈顿距离1,所以白点2→黑点1 黑点2与白点1曼哈顿距离1,所以白点1→黑点2 黑点2与白点2曼哈顿距离1,所以白点2→黑点2 此时,漂亮三角形数为0 漂亮三角形数最大的连法: 此时,有2个漂亮三角形 黑1→白1→白2→黑1 黑1→白1→黑2→黑1 结论:对于一个黑点,只要从它控制范围内的白点向它控制范围外的白点引一条边就能获得一个漂亮三角形 在此处,D=3 我们考虑如何连接白点1和白点2 使得漂亮三角形数最大和最小 如果白点1→白点2 那么,会有2个漂亮三角形: 黑1→白1→白2→黑1 黑2→白1→白2→黑2 如果白点2→白点1 那么,会有1个漂亮三角形: 黑4→白2→白1→黑4 综上,对于白1------白2这条边的连法 最多能获得2个漂亮三角形 最少能获得1个漂亮三角形 这条边如何连是不会影响到别的白点构成别的漂亮三角形(1黑2白)的。 在此处,D=3 我们设P[i]表示控制白点i的黑点数。 D[i,j]表示同时控制白点i,j的黑点数。 那么对于白点i,j间的这条边 如果i→j,那么漂亮三角形数为 覆盖i且不覆盖j的黑点数,即 P[i]-D[i,j] 同样的,如果j→i,那么漂亮三角形数为 P[j]-D[i,j] 所以,对于边i----j,漂亮三角形 最多有 max{P[i]-D[i,j],P[j]-D[i,j]} 最少有 min {P[i]-D[i,j],P[j]-D[i,j]} i→j i→j 我们枚举下白点i,j就可以得到所有1黑2白的漂亮三角形数 这个公式有两部分,我们分开来化简 由于计算这个式子之前,我们已经求出了P数组 所以,我们可以先对P数组进行从小到大的排序。 因为,排完序后符合:ij,则P[i]P[j],所以很容易简化 式子的第2部分: 观察很容易发现,这个式子是枚举每一条白点间的边,然后统计有多少黑点覆盖这条边。 其实,我们可以换一个算法: 枚举每一个黑点,然后统计这个黑点覆盖了多少条边。 显然,在黑点控制范围内的白点间的边都是被这个黑点所控制的。 我们可以先计算出一个数组Q,Q[i]表示黑点i控制了Q[i]个白点 那么黑点i控制的边数就是C(Q[i],2)=Q[i]×(Q[i]-1)/2 公式第二部分就简化为 于是,1黑2白的漂亮三角形数就是 对于1白2黑的漂亮三角形数就是上式中把P换成Q,把Q换成P 我们把1黑2白的漂亮三角形数和1白2黑的漂亮三角形数相加 得到全部漂亮三角形数的最大值: 同样的方法,我们可以得到全部漂亮三角形数的最小值: 至此,我们得到了一个求出漂亮三角形数最值的公式。 但这个公式的复杂度与P、Q数组的计算有很大关系。 下面,我们用O(nlog n)的复杂度求出P、Q数组 我们首先观察一下黑点所控制的点的图形: 我们将其奇偶染色: 然后分离: 我们很容易发现这是斜45度的正方形,我们可以将棋盘旋转45度后作线段树即可。 *

您可能关注的文档

文档评论(0)

精品报告 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档