首页 > 其他分享 >[ARC131D] AtArcher 题解

[ARC131D] AtArcher 题解

时间:2023-03-28 18:34:30浏览次数:40  
标签:ARC131D 分界点 支箭 分数 中心 得分 题解 AtArcher

题意

数轴上有一个箭靶以 \(0\) 为轴心左右对称,给定每个得分区域的范围和分值,要求射 \(N\) 支箭在靶上,且任意两支箭的距离不少于 \(D\),求最大得分。保证从中心向两侧分数不增。特别的,如果有一只箭射在了分界点上,以较大得分为准。

思路

由于分数的单调性,我们肯定会让两只相邻的箭之间的距离恰好为 \(D\),即达到最紧密的情况。

我们设中心箭的定义为左边(不含自己)有 \(\lfloor\dfrac{N}{2}\rfloor\) 支箭,右边(含自己)有 \(\lceil\dfrac{N}{2}\rceil\) 支箭。那么中心箭的范围只可能是 \((-D,D)\)(因为再往外移就相当于将最左/右边的一支箭射到了最右/左边,由于对称性,这样肯定不会更优)。

考虑枚举中心箭的位置,那么剩余箭的位置可以直接算出来,于是我们就有了一个优秀的 \(O(ND)\) 的做法。

还是过不去,考虑优化。可以发现,在中心箭由 \(-D+1\) 移到 \(D-1\) 的过程中,任意两个相邻分数的分界点最多被跨越两次(因为两只箭之间的间隔为 \(D\))。而且每只箭模 \(D\) 同余,因此,我们可以对模 \(D\) 的余数相等的分界点分成一组,然后每次移动时暴力扫描看哪些分界点被跨越了,更新答案即可。时间复杂度 \(O(D+N)\)。

标签:ARC131D,分界点,支箭,分数,中心,得分,题解,AtArcher
From: https://www.cnblogs.com/bykem/p/17266276.html

相关文章

  • android:state_pressed标签失效或android:state_enabled标签失效问题解决
    问题描述:android:state_pressed标签失效或android:state_enabled标签失效,点击不会变色,可用/不可用时不会变色。 <?xmlversion="1.0"encoding="utf-8"?><selector......
  • 省选武汉联测 13 题解
    省选模拟赛俩构造一交互挺nm逆天。赛后题解区就一句Surprise!!!没题解也挺nm逆天。那建议组题人的马先消失一下。这时候就体现学长博客的重要性了。搜关键词搜到三......
  • Conda in Windows under MSYS2 and Zsh 的问题解决
    CondainWindowsunderMSYS2andZsh的问题解决在Window11上使用gitbash安装zsh,并配置p10k主题,主要问题就是prompt中无法显示condaenv;condaactivate/deactivate......
  • 【题解】[SDOI/SXOI2022] 小 N 的独立集(dp of dp)
    题目分析:就借助这个题稍微说一下\(dp\)套\(dp\)。对于\(dp\)套\(dp\)其解决的问题是:若给定某一具体情况则答案十分好求,现要求对于所有的情况的答案进行统计。这......
  • 【题解】[HNOI2007]梦幻岛宝珠
    题目分析:对于这种某一个值很大另一个值很小的背包题,就是要求找特殊性质。既然每一个\(w\)都可以写成\(a\times2^b\)的性质,就可以对于每一个\(b\)单独做背包,这样......
  • 【题解】[APIO2010] 信号覆盖
    题目分析:其实就是涉及四个点之间的位置关系,三个点形成圆判断是否包含另一个点。考虑四个点之间形成的多边形只可能是凸四边形或者是凹四边形,如下图所示:(上图为凸多边形)......
  • 【题解】Atcoder ABC295 A-G
    A.ProbablyEnglish题目分析:直接每一个单词判一下就好了。代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;intmain(){ intn;scanf("%d",&n); bo......
  • CF743B Chloe and the sequence 题解 分治
    题目链接:http://codeforces.com/problemset/problem/743/B题目大意:对于一个n-序列,如果n==0,那么它是一个空的序列(也就是说空序列中没有元素)。然后会进行i次操作,每次......
  • CF768B Code For 1 题解 分治
    题目链接:http://codeforces.com/problemset/problem/768/B解题思路:分治。本题和的解题思路相似。tips:如果如果\(n\)对应的区间完全被\([l,r]\)覆盖了,则区间\([......
  • leetcode-841-钥匙和房间 题解
    题目描述有N个房间,开始时你位于0号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间i都有一个钥匙列表r......