首页 > 其他分享 >[USACO05DEC] Layout G

[USACO05DEC] Layout G

时间:2024-11-09 16:24:15浏览次数:1  
标签:Layout 对于 约束 leq 对数 有解 USACO05DEC dis

算法

设 \(dis_i\) 表示第 \(i\) 头奶牛的坐标
题目转化为

对于 \(M_L\) 对数对 \((A_i, B_i) , A_i < B_i\) , 使得 \(dis_{B_i} - dis_{A_i} \leq D_i\)
对于 \(M_D\) 对数对 \((A_i, B_i) , A_i < B_i\) , 使得 \(dis_{B_i} - dis_{A_i} \geq D_i\)
对于 \((i, i + 1)\) , 有 \(dis_{i + 1} \geq dis_i, dis_i \leq dis_{i + 1}\)

两组约束不好处理, 考虑转化成一组约束

对于 \(M_L\) 对数对 \((A_i, B_i) , A_i < B_i\) , 使得 \(dis_{B_i} - dis_{A_i} \leq D_i\)
对于 \(M_D\) 对数对 \((A_i, B_i) , A_i < B_i\) , 使得 \(dis_{A_i} - dis_{B_i} \leq -D_i\)
对于 \((i, i + 1)\) , 有 \(dis_{i} \leq dis_{i + 1}\)

建立超级源点 \(0\) , 避免图不连通

考虑问题中三个结果

有解

先从 \(0\) 开始, 没有负环
再从 \(1\) 开始跑最短路

  • 存在最大值
    即为满足约束的最大距离
  • 不存在最大值
    分析满足这种情况的图长什么样
    若 \(1\) 和 \(N\) 不连通, 则此时没有直接约束, 输出 \(-2\)

无解

先从 \(0\) 开始, 有负环则无解

代码

后补

总结

对于这样的一类题:

  1. 转化为单组约束
  2. 判断是否有解(先要有解才能继续讨论), 使用超级源点解决连通性问题
  3. 判断是否有约束(这个不是所有题都要用)

标签:Layout,对于,约束,leq,对数,有解,USACO05DEC,dis
From: https://www.cnblogs.com/YzaCsp/p/18536831

相关文章

  • DocLayout-YOLO,让多样性文档布局检测更快、更准、更强
     布局检测是文档解析领域的核心任务之一,目标是精准定位文档中不同类型的元素(正文、标题、表格、图片等)。尽管布局检测已经研究很多年,但现有的布局检测算法多关注在论文类型的文档,当面对多样性的文档(如教材、考题、研报等)时,其检测效果还是不及预期。上海人工智能实验室在2024......
  • pageLayoutControl保存mxd
    namespaceBusiness.OutputMap{[Guid("068df737-4a05-4d23-b906-e96693bfabe5")][ClassInterface(ClassInterfaceType.None)][ProgId("OutputMap.SaveMapMxdCommand")]publicsealedclassSaveMapMxdCommand:BaseCommand,IBarBu......
  • Qt gridLayout布局占两格或两列在ui文件中实现
         在Qt  gridLayou布局里添加一个控件如何设置其占两格或多格   如下图:             一、如果是纯代码编写的界面 (大多是这个方式)     在纯代码编写的界面应用中,可以使用函数QGridLayout::addWidget(QWidget*w,intr......
  • Pyside6 布局管理器(5)--- QFormLayout的使用
    一、QFormLayout的介绍(官翻)QFormLayout是一个方便的布局类,它以两列的形式布局其子元素。左列由标签组成,右列由“字段”小部件(行编辑器、数字显示框等)组成。 传统上,这种两栏布局是通过使用QGridLayout实现的。QFormLayout是一种更高级别的替代方案,具有以下优点:遵守不同平台......
  • FlowLayout实现流式布局效果,看这一篇就够了!
    FlowLayout实现流式布局效果    【Android开源库】FlowLayout的基本使用什么是流式布局?就是像水一样可以流动?不,之所以这样命名只是在强调它的不规则性,它会根据你的内容多少测量你需要的控件的尺寸,完成自定义的效果。之前我做过自定义View的流式布局效果,今天就来使用hon......
  • P5195 [USACO05DEC]Knights of Ni S
    为什么没有题解用优先队列,来个优先队列的。先从起点BFS一遍,把到所有能到达灌木丛放入优先队列。因为防止有些离终点近但不是最优的灌木丛更新答案。再跑一遍优先队列BFS。#include<bits/stdc++.h>usingnamespacestd;#defineLLlonglongLLn,m,a[1002][1002],x......
  • iOS开发框架--MyLayout
    MyLayout框架不仅支持Objective-C,也可以在Swift中使用。通过MyLayout,可以使用面向对象的方式来创建和管理视图的布局,简化了AutoLayout中繁琐的约束设置流程。在Objective-C中,MyLayout提供了相同的布局类型和属性,使用方式稍有不同,主要是语法和调用方式上的差异。先介......
  • GridLayoutGroup
    目录新建演示介绍代码示例新建在物体的Inspector面板中添加组件(AddComponent->GridLayoutGroup)演示介绍GridLayoutGroup网格布局组组件将其子布局元素放在网格中。Padding:设置子对象之间的间距,如左移、右移等。CellSize:指定每个单元格的大小。你可以设置宽度......
  • HorizontalLayoutGroup 和 Vertical Layout Group
    目录新建演示介绍代码示例新建在物体的Inspector面板中添加组件(AddComponent->HorizontalLayoutGroup或者VerticalLayoutGroup)演示介绍HorizontalLayoutGroup水平布局组组件将其子布局元素并排放置在一起。VerticalLayoutGroup垂直布局组组件将子布局元素......
  • Android中的ConstrainLayout的用法(上)
    Android中的ConstraintLayout(约束布局)是一种灵活的布局方式,它允许开发者通过定义视图之间的相对位置来创建复杂的用户界面。以下是对ConstraintLayout的详细解释:一、基本介绍ConstraintLayout是在2016年GoogleI/O大会上发布的布局方式,旨在解决复杂的页面层级嵌套过多的问题......