USACO

洛谷P3607 [USACO17JAN] Subsequence Reversal P 题解

Subsequence Reversal P 思路: 发现,翻转一个子序列,就意味着两两互换子序列里面的东西。 于是我们就可以设 \(f[l][r][L][R]\) 表示: \(\max[1,l)=L,\min(r,n]=R\) 时的最长长度。 则边界为: \(L>R\) 时, \(f=-\inft ......
题解 Subsequence Reversal P3607 USACO

洛谷P3118 [USACO15JAN] Moovie Mooving G 题解

Moovie Mooving G 设 \(f[i][S]\) 表示在第 \(i\) 场(注意是场,不是部)电影时,已经看了 \(S\) 里面的电影是否合法。 然后贪心地取 \(|S|\) 最小的状态保存。光荣 MLE 了, \(21\%\)。 发现当一场电影结束后,无论这一场是在哪里看的都没关系。 ......
题解 Mooving Moovie P3118 USACO

[USACO17JAN] Promotion Counting P 题解

[USACO17JAN] Promotion Counting P 题解 前言 好久没写题解了,今天趁我心情好赶紧水一篇。 思路 首先拿到这题,关键词检索:子树,比 \(p_i\) 大的,树状数组!现在考虑如何去掉其他子树的贡献……emm,我直接在算贡献的时候去掉其他子树的贡献不就好了! 当然,暴力 ......
题解 Promotion Counting USACO JAN

[USACO08FEB]meteor Shower S题解(bfs)

题目描述 贝茜听说一场特别的流星雨即将到来:这些流星会撞向地球,并摧毁它们所撞击的任何东西。她为自己的安全感到焦虑,发誓要找到一个安全的地方(一个永远不会被流星摧毁的地方)。 如果将牧场放入一个直角坐标系中,贝茜现在的位置是原点,并且,贝茜不能踏上一块被流星砸过的土地。 根据预报,一共有 \(M\) ......
题解 Shower meteor USACO FEB

P1457 [USACO2.1] 城堡 The Castle 题解

分析 感觉没有蓝题难度 一道 bfs 题目,相较于大部分 bfs 题,它较为复杂,但分析一下还是很好水过的。 建立墙时,可以用三维数组,\(wall_{~i, ~j, ~pos}\) 表示 第 \(i\) 行第 \(j\) 列 \(pos\) 方向有墙。 观察发现,\(8 = 2^3,4 = 2^2 ......
题解 城堡 Castle USACO2 P1457

P9019 [USACO23JAN] Tractor Paths P 题解

Description 有 \(n\) 个区间,第 \(i\) 个区间为 \([l_i,r_i]\)。保证 \(l_1<l_2<\cdots<l_n\) 且 \(r_1<r_2<\cdots<r_n\)。其中一部分区间是特殊的,输入会给定。 如果第 \(i\) 个区间和第 \(j\) 个区间相交,那 ......
题解 Tractor P9019 USACO Paths

[题解]P3656 [USACO17FEB] Why Did the Cow Cross the Road I P

思路 首先,\(A\) 和 \(B\) 只会移动一个,那么,我们分开来算,我们先假定 \(B\) 会动。 不妨令 \(A\) 与 \(b\) 连边的端点为 \(x,y\)。如果有线段 \(pq\) 能与 \(xy\) 相交,一定满足如下其中一条规律: \(p < x \wedge q > y\) \ ......
题解 the P3656 Cross USACO

题解 [USACO04OPEN] Turning in Homework G

题目链接 先将所有作业按位置排序。 直接贪心显然是不行的,因为我们没有办法确定对于一个时间较久的作业,是在原地等待,还是在未来的某个节点返回,并且无法确定是那个节点,所以只能考虑 \(dp\)。 对于此类可以倒来倒去的问题,通常考虑区间 \(dp\),若设 \(f_{i,j}\) 表示完成区间 \( ......
题解 Homework Turning USACO OPEN

P2951 [USACO09OPEN] Hide and Seek S 题解

Problem 题目概述 给你一个无向图,边权都为 \(1\) ,求:离 \(1\) 号点最远的点的编号、最远的距离、有几个点是离 \(1\) 号点最远的。 思路 直接用:优先队列 \(BFS\),先求出 \(1\) 号点到每个点的最短路,存到 \(dis\) 数组中,然后再求 \(max(dis[ ......
题解 P2951 USACO 2951 OPEN

P1522 [USACO2.4] 牛的旅行 Cow Tours

Problem 题目简述 给你两个独立的联通块,求:在两个联通块上各找一个点连起来,使得新的联通块的直径的最小值。 思路 本题主要做法:\(Floyd\)。 首先,Floyd求出任意两个点之间的最短路。 枚举每一个点,求出以这个点能走到的所有点中距离的最大值。(一定在能走到的情况下,不然默认距离就是 ......
USACO2 P1522 USACO Tours 1522

P3147 [USACO16OPEN] 262144 P

Link 这个题有一个很特殊的点,就是最大值不会超过28,可以想一下最多可以合并多少次。 那么常规的区间dp是不能使用的,就要采用特殊的形式, 因为很难的确定应该怎么转移,那么就换一种思路,转移的对象变成另外一个端点。 \(dp_{i,j}\) 表示\(i\)在左边,达到\(j\)的话的右端点位置 ......
262144 P3147 USACO 3147 OPEN

P6066 [USACO05JAN] Watchcow S

prologue 这个题这么水的一个板子题。 analysis 这个题目我们正反建两条边,在跑欧拉回路的时候,看这个边是不是被走过,走过就不走,跳过这个边。如果没走,就走这条边并且标记这个边走过了。 code time #include <bits/stdc++.h> using namespace ......
Watchcow P6066 USACO 6066 JAN

P5838 [USACO19DEC] Milk Visits G

P5838 [USACO19DEC] Milk Visits G Luogu P5838 Solution 提供一种奇特的 \(\mathcal O(\dfrac{n\sqrt n\log n}{\omega})\) 的做法。 树链剖分转化成序列问题。然后变成了询问一个区间 \(l,r\) 是否存在 ......
Visits P5838 USACO 5838 Milk

洛谷P3612 [USACO17JAN] Secret Cow Code S

[USACO17JAN] Secret Cow Code S 题面翻译 奶牛正在试验秘密代码,并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。 给定一个字符串,让后面的字符旋转一次(每一次正确的旋转,最后一个字符都会成为新的第一个字符)。也就是说,给定一个初始字符串,之后的每一步都会 ......
Secret P3612 USACO 3612 Code

P3128 [USACO15DEC] Max Flow P

P3128 [USACO15DEC] Max Flow P 有好几种解决方法,这里讲第一种树状数组 主要是线段树没调好 区间修改,单点查询,很明显我们可以用树状数组,简单又方便 树状数组 #include<bits/stdc++.h> using namespace std; const int N ......
P3128 USACO 3128 Flow DEC

洛谷P2341 [USACO03FALL] 受欢迎的牛 G

P2341 受欢迎的牛 G 题解 这题我们需要了解强连通分量 一、定义 在有向图 \(G\) 中,如果两个顶点 \(u\) , \(v\) 间有一条从 \(u\) 到 \(v\) 的有向路径,同时还有一条从 \(v\) 到 \(u\) 的有向路径,则称两个顶点强连通。如果有向图 \(G\) 的每两个 ......
P2341 USACO 2341 FALL 03

P4824 [USACO15FEB] Censoring S

P4824 [USACO15FEB] Censoring S KMP+栈 同样的套路,先找B的最长前后缀,然后与A匹配 不同的是要删除A中的B,特殊的是删除之后可能会产生新的B 那我们可以利用栈的思想,利用f数组,记录A每一位置上B的匹配程度,这样删除时,直接回到上一个匹配程度,以防漏掉。 利用栈记 ......
Censoring P4824 USACO 4824 FEB

一个树状数组求逆序对的进阶 [USACO17JAN] Promotion Counting P

题面就这样,就是在树上求一个逆序对但是我笨笨地求了对于每一个下属有几个上司能力比他低还一遍就写对了,结果发现看错题目了难得一遍过,但是没有完全过 ......
逆序 数组 Promotion Counting USACO

P9013 [USACO23JAN] Find and Replace S

前言 这是考试的时候放的一道题,考的时候没做出来。 调了一个晚上,心态爆炸,故作此篇。顺便,鸣谢泥土笨笨大佬的题解,给我的代码提供了强有力的对拍参照。 正题 首先看到题目,虽然字符串长度不超过 \(10^5\),但是还是嫌多;再一看,至多只有52个字符。 那么从这个数据范围入手,思考可以按照变换前后 ......
Replace P9013 USACO 9013 Find

P5836 [USACO19DEC] Milk Visits S - 洛谷题解

题目链接 :[P5836] USACO19DEC] Milk Visits S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题可以用并查集来解决。 题目中每个结点只有两个状态:H和G。那么我们可以推断出,只有当起点和终点间每个结点的状态相同但是起点(或者终点或起点到终点之间 ......
题解 Visits P5836 USACO 5836

[USACO23OPEN] Pareidolia S

......
Pareidolia USACO OPEN 23

题解 P9019 [USACO23JAN] Tractor Paths P

显然,对于给定的 \(l,r\),最短路可以贪心求出,即每次走与当前区间相交且左端点最大的区间,这个可以用倍增加速。 定义 \(f_{i,j}\) 表示从区间 \(i\) 往右走 \(j\) 步后到达的区间,\(g_{i,j}\) 表示往左走的情况。 正反遍历一下即可求出 \(f_{i,1}\) 和 ......
题解 Tractor P9019 USACO Paths

题解 P8905 [USACO22DEC] Strongest Friendship Group G

显然不同连通块互不影响,答案分开算。 对于当前连通块,假如我们希望所选的子图中最小的度数为 \(x\),那么只需要保留度数大于等于 \(x\) 的所有点,然后将这些点能连的边连上,再保留其中度数合法的,以此类推,最后剩下的点数就是子图最大的大小。 这些操作就相当于,对于当前图,如果度数最小的点不满足 ......
题解 Friendship Strongest P8905 Group

P3101 [USACO14JAN] Ski Course Rating G

思路 晃一眼题目,这不和这道题一样吗? 但是再仔细一看,有有些不一样,要求了起点至少到多少个点,不要求起点互通,求的也不是最小的 \(d\),而是 \(d\) 之和。 首先,很容易地发现,这道题再去二分肯定不现实,每个点都去二分一次,所需要的时间也很恐怖。 所以我们尝试从其他的方面入手。 可以发现, ......
Course Rating P3101 USACO 3101

P1653 [USACO04DEC] Cow Ski Area G

如果把每个方格看作一个点,就是这道题的子任务 B 了。 思路 首先看到目标是保证任意方格可以互通,就可以想到应该是一道强连通分量的题,只要按照题目的要求建图,就可以得到一个有向图,那么用 tarjan 缩点后,就可以得到一个无环的有向图。 这样一个无向图,对于每个有入度有出度的点,肯定都是按照顺序走 ......
P1653 USACO 1653 Area DEC

P5851 [USACO19DEC] Greedy Pie Eaters P

如果只考虑选哪些奶牛吃派和奶牛吃派的顺序,就会陷入僵局,我们不妨考虑派的情况。 令 \(f_{i,j}\) 表示 \(i\sim j\) 这一段派,能满足一些奶牛,它们的最大可能体重。因为一头奶牛至少吃一个派,我们只关心区间内奶牛吃派的相对顺序,所以转移可以枚举当前区间最后吃的这头奶牛吃的某个派 \ ......
Greedy Eaters P5851 USACO 5851

P1522 [USACO2.4] 牛的旅行 Cow Tours

# 这是一道纯暴力的题目哦 ## 前言 [传送门](https://www.luogu.com.cn/problem/P1522) 这是本**蒟蒻**第一次发题解,希望大家多多支持!!! ## 分析 这道题目主要考的~~不~~是**最短路**(~~除了Floyd~~),关键是对于各个牧区之间的**连 ......
USACO2 P1522 USACO Tours 1522

P9189 [USACO23OPEN] Custodial Cleanup G 题解

## Description 奶牛旅馆可以被看作一个 $N$ 个节点 $M$ 条边的无向简单图,其中每个房间有一个颜色 $C_i$,以及一个钥匙,颜色为 $S_i$, FJ 最初在 $1$ 号节点,手上一把钥匙都没有。 FJ 可以进行无数次以下操作: - 捡起当前房间的钥匙。(FJ 可以同时手持多个 ......
题解 Custodial Cleanup P9189 USACO

[USACO10DEC] Cow Calisthenics G

1. 注意到“最大值最小”,考虑二分最大直径。 2. 对于当前直径,树形dp + 贪心的封锁。 3. $f_u$:以 $u$ 为根的子树,叶节点到 $u$ 的最大距离 $+1$。 4. 在树形dp时维护 $\max f_{v'}$,与 $f_v$ 组成直径。 5. 复杂度 $\mathcal{O}( ......
Calisthenics USACO DEC Cow 10

P2943 [USACO09MAR] Cleaning Up G

令 $f_i$ 表示前 $i$ 头牛的总用时,很容易写出转移方程 $f_i=\min\{f_j+sum(j,i)\}$。其中 $sum(j,i)$ 表示 $j\sim i$ 中食品的种类。 直接暴力做是 $O(N^2)$ 的,考虑优化。发现 $f$ 数组单调不降,在 $sum(j,i)$ 相同时,$ ......
Cleaning P2943 USACO 2943 MAR