link

\(1-A-B-C-D-1\) 非常对称,我们断开来,分成 \(1-A-B\) 和 \(C-D-1\) 两部分,不难发现这两块是完全一致的。

首先对于每个景点 \(x\) 求出距离它不过 K、且距离 1 不超过 K 的所有点(即对于每个 \(B\),找到满足条件的 \(A\)),设这些点形成的集合为 \(S_{B}\)。由于边权为 1,对于每个 \(B\),我们只需要 bfs 即可 \(O(n+m)\) 得到 \(S_B\),整个过程的复杂度为 \(O(n(n+m))\)。

接下来,枚举 \(f_{B, C}\le K\) 的 \((B, C)\),然后暴力枚举 \(S_B,S_C\) 中的点,取最优且满足限制的组合即可。

上面求答案的复杂度是 \(O(n^4)\) 的,需要优化。

不难贪心想到我们只需要取 \(S_B, S_C\) 中最大的值,但是我们可能会从 \(S_B\) 取到 \(C\),\(S_C\) 取到 \(B\),或者从 \(S_B,S_C\) 中取到相同的值,我们需要规避掉这种情况。

考虑先满足从 \(S_B\) 取出来的值与 \(C\) 不同,那么我们顺便维护 \(S_B\) 中的次大值,若最大值与 \(C\) 相同就取次大值,否则取最大值即可。

然后考虑 \(S_C\) 取出的值满足条件,不难发现需要不同的值有 2 个(\(B\),\(S_B\) 取出的值),那么我们还要多维护次次大值,这样就可以保证最优解必然被我们枚举到了。

总复杂度 \(O(nm+n^2)\)。

code

[CSP-S 2022] 假期计划的更多相关文章

  1. hihoCoder#1698 : 假期计划 组合数

    题面:hihoCoder#1698 : 假期计划  组合数 题解: 题目要求是有序的排列,因此我们可以在一开始就乘上A!*B!然后在把这个序列划分成很多段. 这样的话由于乘了阶乘,所以所有排列我们都已 ...

  2. hihocoder #1698 假期计划 (排列组合+费马小定理+乘法逆元)

    Description 小Ho未来有一个为期N天的假期,他计划在假期中看A部电影,刷B道编程题.为了劳逸结合,他决定先拿出若干天看电影,再拿出若干天刷题,最后再留若干天看电影.(若干代指大于0)  每 ...

  3. CSP/S 2022 游寄

    初赛 HN 初赛分数线好像大 \(32\) 分左右,通过率极高!本人弱弱的拿了 \(60.5\) 分(周围的同学平均分 \(>80\).) Day -1 这一天晚上,我背了背 dijkstra, ...

  4. [No000016]为什么假期计划总是做不到?

  5. [USACO13DEC]假期计划(黄金)Vacation Planning (gold)

    题目翻译不好,这里给出一份 题目背景 Awson是某国际学校信竞组的一只大佬.由于他太大佬了,于是干脆放弃了考前最后的集训,开车(他可是老司机)去度假.离开学校前,他打开地图,打算做些规划. 题目描述 ...

  6. poj1936 假期计划第一水

    All in All Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 29651   Accepted: 12312 Desc ...

  7. 洛谷P3094 [USACO13DEC]假期计划Vacation Planning

    题目描述 有N(1 <= N <= 200)个农场,用1..N编号.航空公司计划在农场间建立航线.对于任意一条航线,选择农场1..K中的农场作为枢纽(1 <= K <= 100 ...

  8. CSP 记

    csp 开考建好文件夹编译器不能用搞了半天换了台电脑 四道题看完一个小时过去了 第一题不会正解写了部分分还有点悬 第二题写暴力因为一个小错误调了半天 看时间不多了已经有点慌了 也没想正解直接开了下一题 ...

  9. c++ imooc自学计划

    一.视频学习相关的课程列表: C++远征之起航篇http://www.imooc.com/learn/342: C++远征之离港篇http://www.imooc.com/learn/381: C++ ...

  10. CSP-S 游寄

    \(\text{reflection}\) 初赛. 本来以为上午要愉快地周测,但是伟大的虎哥让我们在四楼接着练习 然后就目睹了一个万能头+return 0编译 1min30sec 的奇迹 Win7 打 ...

随机推荐

  1. Selenium+pytest 页面对象模型框架

    下载地址:https://gitee.com/xiaopo1998/web_ui_test.git Selenium 页面对象模型框架使用说明 本框架基于 Selenium WebDriver 实现了 ...

  2. FastAPI与SQLAlchemy同步数据库集成

    title: FastAPI与SQLAlchemy同步数据库集成 date: 2025/04/15 01:27:37 updated: 2025/04/15 01:27:37 author: cmdr ...

  3. should contain指令的用法,校验结果

    上图案例 商品添加后,匹配"商品名称","现价","库存" 首先获取"商品名称","现价",&quo ...

  4. vue属性/子属性监听watch的几种方法

    特殊字符法 特殊字符+deep法 直接deep法 常规法 直接用如下代码示例吧: data(){ return { goBackHeader:'添加排班', scheduleForm:{ schedu ...

  5. 支持命令行输入中文(例如redis-cli输入中文)

    修改 cmd 控制台默认代码页编码的几种方法[GBK.UTF-8]_FKNIGHT 的博客-CSDN博客_修改cmd编码 1.进入redis-cli.exe所在文件夹 2.在路径栏输入cmd回车 3. ...

  6. 开源免费真香!Star 1.4k 这款开源在线教育系统让万人学习零压力,企业培训系统一键搭建神器

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 PlayEdu 是一款基于 SpringBoot3 + Vue3 开发的开源企业培训系统,提 ...

  7. 各式各样的console

    目录 知乎的console 百度的console B站的console 知乎的console 我很喜欢hire的文字样式. _____ _____ _____ _____ /\ \ /\ \ /\ \ ...

  8. TensorFlow 基础 (04)

    最近都面临一个问题是, 要用纯 sql 来实现所有的逻辑, 其实 union 呀, 嵌套, 子查询呀, 这些都还好, 但那带有逻辑判断的, 这就整不好整了, 就多分支的, 再分支这种... 也不知为啥 ...

  9. SQL 日常练习 (十四)

    最近的项目都比较忙, 没太有时间来做练习, 不过 sql 这块, 还是始终要保持良好的手感, 我已经渐渐感觉到, 随着写得越来越多, 当然不只是在这里, 更多是在工作中, 不过涉及信息安全不能共享. ...

  10. ASP.NET Core之由配置系统与创建app所想到的

    先看文件配置的代码: ConfigurationBuilder configBuilder=new ConfigurationBuiler();//典型的创建者模式 configBuilder.Add ...