Problem 1. Flight Routes

设原图的邻接矩阵为 \(e\),考虑它给我们的矩阵是什么东西。

设 \(d_{i, j}\) 表示 \(i\) 到 \(j\) 的路径数的奇偶性,那么 \(d\) 矩阵可以类似 Floyd 得到。具体而言就是依次枚举 \(k, i, j\),\(d_{i, j} \gets d_{i, j} \ \text{xor} \ (d_{i, k} \ \text{and} \ d_{k, j})\)。

我们发现 Floyd 的过程只用了位运算,那么它是可以反向还原的,所以倒着跑一遍 Floyd 就好了。

Code

Problem 2. Minimum Longest Trip

很容易想到拓扑排序,但难点在于不好比较从一个结点开始走时,它后面路径的字典序。

设从一个点 \(i\) 开始走,最多能走 \(d_i\) 的距离。

考虑按照 \(d_i\) 将所有点分层,每次用当前层的所有点更新下一层。对于每一层的点维护一个 \(rk_i\),表示从 \(i\) 开始的路径的字典序排名,这样可以很方便地处理字典序最小的限制。\(rk_i\) 也可以在层之间递推得到。

然后基本上就是拓扑排序板子了,没什么好讲的。

Code

Problem 3. Haybale Distribution

首先有一个比较显然的结论:\(y\) 一定与某个 \(x_i\) 重合。

至于为什么是这样呢,考虑代价是一次函数,如果 \(y\) 被夹在 \(x_i\) 和 \(x_{i + 1}\) 之间,那么将 \(y\) 向 \(x_i\) 或 \(x_{i + 1}\) 的方向调整肯定不劣的。

然后考虑将询问离线下来,按 \(\frac{b_i}{a_i}\) 排序,那么决策点会不断右移。所以线性扫一遍就好了。

Code

USACO 2023 December Contest, Gold的更多相关文章

  1. USACO 2015 December Contest, Gold Problem 2. Fruit Feast

    Problem 2. Fruit Feast 很简单的智商题(因为碰巧脑出来了所以简单一,一 原题: Bessie has broken into Farmer John's house again! ...

  2. USACO 2016 February Contest, Gold解题报告

    1.Circular Barn   http://www.usaco.org/index.php?page=viewproblem2&cpid=621 贪心 #include <cstd ...

  3. USACO 2016 January Contest, Gold解题报告

    1.Angry Cows http://www.usaco.org/index.php?page=viewproblem2&cpid=597 dp题+vector数组运用 将从左向右与从右向左 ...

  4. USACO 2019 December Contest 随记

    Forewords 今年 USACO 的比赛变化挺大的,有部分分了,而且不再是固定十个点了(部分分只说这几个点满足这几个性质,以为十个点的我还高兴了一会,一提交,...),除此之外居然赛后还排名了.这 ...

  5. USACO 2013 November Contest Gold 简要题解

    Problem 1. Empty Stalls 扫两遍即可. Problem 2. Line of Sight 我们发现能互相看见的一对点一定能同时看见粮仓的某一段.于是转换成有n段线段,问有多少对线 ...

  6. USACO 2015 December Contest, Platinum Problem Max Flow【树链剖分】

    题意比较难理解,就是给你n个点的树,然后给你m个修改操作,每一次修改包括一个点对(x, y),意味着将x到y所有的点权值加一,最后问你整个树上的点权最大是多少. 比较裸的树链剖分了,感谢Haild的讲 ...

  7. [USACO 2018 December Contest]作业总结

    t1 Convention 题目大意 每一头牛都有一个来的时间,一共有\(n\)辆车,求出等待时间最长的那头牛等待的最小时间. 解法 第一眼看到这道题还以为是\(2018noip\)普及组的t3魔鬼题 ...

  8. 孤独的照片【USACO 2021 December Contest Bronze】

    孤独的照片 Farmer John 最近购入了 \(N\) 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一. 奶牛目前排成一排,Farmer John 想要为 ...

  9. USACO 2023 January Contest, Bronze Problem 3. Moo Operations

    这道题目灰常简单,我们先从最简单的3个字符串开始 有以下几种情况: 可以看到,只有在中间是O的情况下才有可能变成MOO 辣么我们不妨在在s串中枚举这个中间 O 每枚举到一个就看看能不能用他的本身操作次 ...

  10. 【USACO 2019 Feburary Contest】Gold

    模拟二月金组,三个半小时AK. USACO 2019 Feburary Contest, Gold T1 题意:给定一棵树,每个点有点权,每次可以进行以下操作之一: 更改一个点的点权 求某条路径上的点 ...

随机推荐

  1. 智能机器人(双足机器人、四足机器人、人形机器人humanoid)与自动驾驶技术/FSD(Full Self-Drive)“完全自动驾驶”在技术领域的相关性?

    前文: https://www.cnblogs.com/devilmaycry812839668/p/18079439 前文中已经说了,对于能力强大的机器人公司来说,软件和AI技术并不是难点,真正的难 ...

  2. conda中安装GCC/G++

    参考: https://www.5axxw.com/questions/content/h0e4te ========================================== 一般在lin ...

  3. 数据库存储时间数据用timestamp 好还是 varchar好

    表示日期数据基本是date型,只有年月的用varchar2或者char,好处见下:1.数据规范.date对合法日期型会校验,包括闰年2月这种.避免字符型变量产生的某月32号,日期长度不对,日期格式不统 ...

  4. 为什么要加 REQUIRE8 and PRESERVE8? 栈的8字节对齐

    REQUIRE8 and PRESERVE8   The REQUIRE8 and PRESERVE8 directives specify that the current file require ...

  5. C# 使用特性的方式封装报文

    在编写上位机软件时,需要经常处理命令拼接与其他设备进行通信,通常对不同的命令封装成不同的方法,扩展稍许麻烦. 本次拟以特性方式实现,以兼顾维护性与扩展性. 思想: 一种命令对应一个类,其类中的各个属性 ...

  6. 树上启发式合并——dsu on tree

    参考文章: 树上启发式合并 [dsu on tree]树上启发式合并总结 树上启发式合并の详解 启发式合并 启发式算法是什么呢? 启发式算法是基于人类的经验和直观感觉,对一些算法的优化. 举个例子,最 ...

  7. Linux 磁盘分区和格式化

    分区 常用命令行工具: fdisk:适用于 MBR 分区表 gdisk:适用于 GPT 分区表 parted:适用于 MBR 和 GPT 分区表,功能更强大.它还有一个 GUI 版本,名为 gpart ...

  8. Manual 命令手册导出

    man 命令的输出中含有大量的格式化字符和终端控制序列,这些是用来在终端中正确显示格式化文本(如加粗,下划线,分页等)所用的.如 BS(Backspace,退格). 如果我们直接用 man comma ...

  9. Linux 内核相关命令

    Shell 命令: ipcs # 查看共享内存 dmesg # 显示内核消息 sudo dmesg -c # 清空内核消息 sudo mknod /dev/rwbuf c 60 0 sudo insm ...

  10. P 问题和 NP 问题的简单理解

    P/NP问题 | 维基百科 P 问题 P 问题的定义是:所有可以由一个确定型图灵机在多项式表达的时间内解决的问题 P 代表 Polynomial-time (adj. 多项式时间) 简单理解:答案可以 ...