首页 > 其他分享 >[abc274F] Fishing 题解

[abc274F] Fishing 题解

时间:2022-10-24 20:45:14浏览次数:77  
标签:abc274F 题解 线段 枚举 Fishing 端点 网住

比较有趣的用点思维的题。

在学校和 DYS 一起推出来的题,庆祝 AT 复活写个题解。

感觉用无序列表列出自己思绪的过程很简洁扼要,但是行文节奏过快。介于我想重现自己今天上午的思路过程,这篇题解用对话体写出。


师:现在,让我们看 abc274F。给定 \(n\) 条鱼的初始位置、速度、重量,请任选一个时刻撒下一张长度为 \(A\) 的网,最大化网中鱼的重量和。时刻与撒网端点都不必是整数。\(n \leq 2000\)

A:有初始位置,匀速增长,区间求值……我想到了 P6405

B:P6405 要求的是恰好相等,相等具有传递性,但是网住没有传递性。能同时网住 AB 与能同时网住 BC 不意味着能同时网住 ABC。这个思路没法做下去。

师:我们已经迈出了第一步。想想看,为什么这个网看着难以处理?

A:时刻任意,位置任意,变量也太多了点!

B:但是 \(n\) 仅有 \(2000\),我们完全可以枚举其中一个再处理。

如果时间确定,能网住一条鱼的网的对应左端点是一个固定区间。如果位置确定,能网住一条鱼的下网时刻也是一个固定区间。问题变为:数轴上 \(n\) 条线段,每条线段有权值,求一个点让覆盖其的线段的权值和最大。这可以用线段树+离散化 \(O(n \log n)\) 解决。\(O(n^2 \log n)\) 是能接受的,只需要 \(O(n)\) 枚举其中一个变量。枚举哪个好呢?

A:我发现了一个性质。一定存在渔网左端点位于一条鱼上时的最优解。看起来,我们可以枚举那条鱼。

B:那么我们需要让位置确定。把其它所有鱼的速度减去这条鱼的速度,这条鱼就会相对静止,也就是这条鱼的位置不变,即下网左端点不变。运用上面说的方法,我们就能在 \(O(n^2 \log n)\) 内解决问题!

事实上,我自己开始看错题以为 \(x\) 给定,然后直接想到了确定一个数的做法,再结合 DYS 发现的性质,拼在一起,居然做完了题。有意识地简化问题,有时是通往正解的道路。

标签:abc274F,题解,线段,枚举,Fishing,端点,网住
From: https://www.cnblogs.com/purplevine/p/16822719.html

相关文章

  • 「ARC140D」One to One - 题解
    题解若对每一块进行考虑,那么对于一个有\(n\)个点\(n\)条边的块,也就是基环树或环来说,里面一定不会存在\(a_i=-1\)。否则就是一棵树了,那么也最多只会有一个\(a_i=-1\)......
  • [NOI Online #1 入门组] 跑步 题解
    [NOIOnline#1入门组]跑步题解一个经典问题:计数将正整数\(n\)拆分为若干个正整数的方案数,这里拆成的正整数是无序的,对\(P\)取模。容易得到\(O(n^2)\)解法设\(f_{i,j......
  • Codeforces Round #401 (Div. 2) 题解 (待续)
    AShellGame#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define......
  • April Fools Contest 2017 题解
    ANumbersJokeJoke数列,OEIS#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define......
  • Codeforces Round #402 (Div. 1) 题解(待续)
    AStringGame#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define#define#defin......
  • BZOJ 4747-4749题解 Usaco2016 Dec
    BZOJ4747:[Usaco2016Dec]CountingHaybales给出N(1≤N≤100,000)个数,和Q(1≤Q≤100,000)个询问。每个询问包含两个整数A,B(0≤A≤B≤1,000,000,000)。对于每个询问,给出数值......
  • Codeforces Round #395 (Div. 1) 题解
    ATimofeyandatree#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define#defin......
  • Spring常见问题解决办法汇总
     解决Theprefix'context'forelement'context:component-scan'isnotbound<beansxmlns="http://www.springframework.org/schema/beans"   xmlns:xsi="http://w......
  • BSOJ7075题解
    感觉这一类DP至少不应该被叫做“LCS模型”,本质应该是其他的东西......先来考虑经典的LCS:\(dp[n][m]\)表示\(S[n]\)和\(T[m]\)匹配上的最长的长度。那么我们不妨......
  • GCJ 2017 R2 题解(待续)
    ProblemA.FreshChocolateProblemYouarethepublicrelationsmanagerforachocolatemanufacturer.Unfortunately,thecompany’simagehassufferedbecausecus......