首页 > 其他分享 >假期计划

假期计划

时间:2023-05-20 22:14:24浏览次数:50  
标签:前三名 假期 中转 然后 贡献 枚举 计划

假期计划

由于要考虑相邻城市之间的中转点不超过 \(k\)(即所经过边数不超过 \(k+1\)),所以首先要预处理出 \(dis[i][j]\),即两两之间的点的距离,可以 bfs \(n\) 次解决。然后就是考虑怎么进行枚举了。首先如果直接枚举四个点显然不可行,时间复杂度是 \(O(n^4)\),应该想到一个技巧:折半枚举。假设点依次是 \(1->A->B->C->D->1\),可以先考虑弄 \(1->A->B\),再弄 \(1->C->D\),然后想办法拼接起来。

接下来是重点:对于每个点,都记录一个从 \(1\) 到某个中间点再到它的贡献,然后取贡献前三名的中间点。然后枚举 \(B,D\) 两点,取它们存储的中转点 \(A,C\) 进行两两组合,应该有 \(3\times 3=9\) 种情况。

这个做法的确很好,但为什么取贡献前三名的点呢?

假如留一个,万一 \(B,D\) 的 \(A,C\) 相等,显然不合法。

假如留两个,如下图

image-20230520215630893

上图中,无论 \(A,C\) 怎么组合,都会只有 \(2\sim 3\) 个不同的点。

留三个,如下图

image-20230520215831741

就算有 \(B,C\),其他的都相同,也可以构造出 \(1->E->B->F->D->1\)。上述的是最坏情况,如果二者其他不相同,那么更加可行了。

思路还是有点难想的,就当作刷新一下自己的认知。

标签:前三名,假期,中转,然后,贡献,枚举,计划
From: https://www.cnblogs.com/wscqwq/p/17417885.html

相关文章

  • 4月份摸鱼计划奖励已经收到了,感谢网站
    4月份参加了网站的摸鱼计划,连续发文21天,得到奖品卫衣一件。另外,很幸运的中了一次抽奖,获得一份凌美(LAMY)宝珠钢笔。礼物都不是很贵,但是可以感受到网站深深的情义,可以激励自己以后创作更多优秀的文章。特此感谢网站,祝网站越办越好!......
  • ABAP-MD11计划订单创建
    1DATA:ls_returnTYPEbapireturn1,2ls_plafTYPEplaf,3ls_headerdataTYPEbapiplaf_i1.45ls_headerdata-pldord_profile=ls_plaf-paart.6ls_headerdata-plan_plant=ls_plaf-plwrk.7ls_headerdata-prod_plant=ls_plaf-pwwr......
  • ABAP-MD12删除计划订单
    1DATA:ls_returnTYPEbapireturn1,2ls_plafTYPEplaf.34CALLFUNCTION'BAPI_PLANNEDORDER_DELETE'5EXPORTING6plannedorder=ls_plaf-plnum7*USE_COLL_UPDATE=''8*LAST_ORDER=''......
  • 【大数据】Presto(Trino)REST API 与执行计划介绍
    目录一、概述二、环境准备三、常用RESTAPI1)worker节点优雅退出2)提交SQL查询请求3)获取查询状态4)获取查询结果5)取消查询请求6)获取Presto节点信息7)获取Presto服务器使用统计信息8)获取查询计划四、Presto(Trino)执行计划一、概述Presto(现在叫Trino)是一个分布式SQL查询引擎,它允许......
  • 使用Celery实现计划任务与异步任务
    前言Celery是一个开源的分布式任务队列系统,用于处理异步任务和分布式任务调度。使用消息代理(如RabbitMQ、Redis)来实现任务队列和消息传递。在使用Python开发web应用过程中,经常使用Celery完成两种任务需求:异步任务。将任务提交到任务队列中,然后继续处理其他任务,而不必等待任务完成。......
  • 造轮计划 ORM
    前言造轮计划近期借助SaaS课程回顾了Java反射相关的知识,以及SpringIOC和AOP的基础知识。按照“能实现一定程度上代表能理解”的思想,尝试实现ORM、IOC和AOP三个常用轮子再谈反射反射是指在运行时动态地获取一个对象的信息以及操作对象的能力这种操作的实现是通过......
  • 造轮计划 AOP
    预备知识AOP实现AOP的理念和实现AOP(面向切面编程)是一种编程范式,它的理念是将程序的业务逻辑和系统级服务分离开来,从而提高代码的可重用性和可维护性。AOP的实现方式是通过在程序执行过程中动态地将额外的代码(称为“切面”)织入到原有代码中,从而实现对原有代码的增强。动态机......
  • 造轮计划 IOC
    IOC实现IOC的理念和实现理解IOC控制反转(InversionofControl,IoC)是一种设计模式,它将对象的创建和对象之间的依赖关系的管理从应用程序代码中转移到外部容器或框架中。这种模式的目的是减少应用程序代码的耦合度,使代码更加灵活和可维护。实现IOC实现IOC的方式有很多种,其中......
  • 从AWR快照中固定执行计划
    Troubleshooting/resolutionf18mgmxm76kdr–sql_idprovidebyuserchecksqlplanhistorycolbtimefora25selecta.sql_id,a.plan_hash_value,to_char(begin_interval_time,'dd-mon-yyhh24:mi')btime,executions_deltaexecutions,round(ELAPSED......
  • Java学习计划
    复习计划及学习网站的时间表如下所示:日期科目学习网站1月1日基本语法和变量类型CodecademyJava课程1月4日运算符和控制语句CourseraJava程序设计1月7日数组、集合和泛型UdemyJava基础课程1月10日类与对象PluralsightJava课程1月13日继承、抽象类......