首页 > 其他分享 >P3547 [POI2013] CEN-Price List

P3547 [POI2013] CEN-Price List

时间:2024-10-23 19:02:38浏览次数:1  
标签:le POI2013 复杂度 扩展 P3547 2a 此时 三元 List

很不错的图论题。

考虑对 \(a,2a,b\) 大小进行讨论。

  1. \(2a \le b\),这种情况是简单的,根本不会走 \(b\) 边,直接 bfs 即可,此时答案为 \(d*a\)。

  2. \(a \le b < 2a\),这种情况下能走两条 \(a\) 边就会用 \(b\) 边替换掉,同时不用担心三元环的情况(因为三元环会出现三个点最短路都是 \(1\),但是从 \(u \to v \to w\) 的 \(2a\) 被替换成 \(b\)),此时答案为 \(\frac{d}{2}*b+[d\bmod2]*b\)。

  3. \(b < a\),此时可能出现为了多走 \(b\) 而少走 \(a\) 的情况,此时答案为 \(\min(D*b,\frac{d}{2}*b+[d\bmod2]*b)\),注意这里的 \(D\) 指的是每次走两步的最短路。

由于求最小值,对上面几种情况取 \(\min\) 即可。

除了 \(d'\) 其他都是平凡的。

暴力考虑每次扩展两条边,复杂度为 \(m^2\),注意对于三个点 \(u,v,w\) 来说,若出现 \(u \to v \to w\) 的扩展,则说明 \(D_{w} > D_{u}\),也就不可能出现 \(w \to u\) 的扩展,同理若 \(u,w\) 同时能扩展到的点也不会以 \(w\) 扩展,故可删除 \((v,w)\) 这条边。

再次思考下复杂度,此时的三元环会被扩展最多三边,而其他边扩展一次会被删除,总复杂度为三元环个数,复杂度为 \(O(m \sqrt m)\)。

标签:le,POI2013,复杂度,扩展,P3547,2a,此时,三元,List
From: https://www.cnblogs.com/Anonymely/p/18498075

相关文章

  • Linklist代码实现以及代码解读
    package集合框架.LinkList;importorg.w3c.dom.Node;importjava.util.Arrays;importjava.util.LinkedList;importjava.util.List;publicclassLinkListTest<E>{publicstaticclassNode<E>{/***@paramelement存储元素*@paramne......
  • [Paper Reading] HOIDiffusion: Generating Realistic 3D Hand-Object Interaction Da
    目录HOIDiffusion:GeneratingRealistic3DHand-ObjectInteractionDataTL;DRMethod阶段一阶段二TrainingCode&&ImplementationExperiment效果可视化总结与发散HOIDiffusion:GeneratingRealistic3DHand-ObjectInteractionDatalink时间:24.03作者与单位:主页:https:......
  • Redis Quicklist 竟让内存占用狂降50%?
    0引言Redis作为一种高效的内存型键值数据库,得益于其底层数据结构的精妙设计。对于List类型的数据,Redis从早期的简单链表(linkedlist),到压缩列表(ziplist),再到如今的quicklist和listpack,不断优化以平衡内存利用率和性能。这篇文章将深入剖析Redis的quicklist和listpack......
  • LinkedList详解
    1概述LinkedList和ArrayList是Java集合框架中的两个重要类,它们分别基于链表和动态数组实现。LinkedList选择链表作为其底层数据结构的原因在于链表在某些操作上具有显著的优势。1.1链表的优势动态大小:链表不需要预先分配固定大小的内存,可以根据需要动态扩展或缩......
  • Leetcode 328. Odd Even Linked List
    我的解法没有什么需要推理的地方,要注意一开始要让cur走的比odd和even快,否则会导致cur的next被odd和even修改,代码里有注释。ListNode*oddEvenList(ListNode*head){if(!head){returnhead;}ListNode*cur=nullptr,*headofOdd=h......
  • Java列表list
    List列表创建列表//List的ArrayList实现List<String>list1=newArrayList<>();//List的LinkedList实现List<String>list2=newLinkedList<>();常用方法importjava.util.List;importjava.util.LinkedList;classMain{publicstatic......
  • Leetcode 160. Intersection of Two Linked Lists
    Leetcode160.IntersectionofTwoLinkedLists错解一开始没看清题目的要求中,提到最后表结构不能变,想到的做法是:先遍历A,把A翻转,然后B就可以走到headA判断出它们是否相交,但是即便如此,也不能判断出相交点在哪里,而且还会破坏链表的结构,所以这种写法不行。正解classSolution{......
  • 屏幕“布局”运行错误之CALLBACK REJECTED BY WHITELIST
    点击屏幕中布局按钮报错 ST22图形屏幕绘制器中的运行时错误SAP的NOTE说明SM59维护TCP/IP链接,编辑回调准许列表,粘贴后保存即可TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplif......
  • DELPHI 隐藏程序窗口,以及TListView控件,点击标题进行排序
    设置视图: 运行效果:    unitHideWindown;interfaceusesWindows,Messages,SysUtils,Classes,Forms,StdCtrls,ActiveX,ComObj,ShellAPI,Tlhelp32,Vcl.Controls,Vcl.ComCtrls,psapi,Vcl.ExtCtrls;typeTForm1=class(TForm)GetWList......
  • 通过比较list与vector在简单模拟实现时的不同进一步理解STL的底层
     cplusplus.com/reference/list/list/?kw=list当我们大致阅读完list的cplusplus网站的文档时,我们会发现它提供的接口大致上与我们的vector相同。当然的,在常用接口的简单实现上它们也大体相同,但是它们的构造函数与迭代器的实现却大有不同。(食用本文时建议与文末的模拟实现代......