spaceship platinum 2020.12 usaco
USACO2023
Breakdown 将过程逆序,即加边并维护以下信息—— $f_{k,i,j}$表示从$i$到$j$恰走$k$步的最短路(其中$k\in [0,2]$) $fs_{k,i}$表示从$1$到$i$恰走$k$步的最短路(其中$k\in [0,4]$) $ft_{k,i}$表示从$i$到$n$恰走$k$步 ......
P9019 [USACO23JAN] Tractor Paths P
Problem Luogu P9019 [USACO23JAN] Tractor Paths P Solution 首先有一个显然的结论,区间 $i$ 向右能到的区间是 $[i+1,RT_i]$,向左能到的区间是 $[LT_i,i-1]$。 根据这个考虑倍增。定义跳一步表示从当前区间去到最远能去的区 ......
P3047 [USACO12FEB]Nearby Cows G 题解
一、题目描述: 给你一棵 n 个点的树,点带权,对于每个节点,求出距离它不超过 k 的所有节点权值和。 二、做题思路: 这题一开始想了一个 O(knlogn) 的线段树合并,写了一半感觉不好转移,最后写了十几分钟的 dp 写出来了。( dp代码就是短 ) 两遍 dfs 。第一遍统计从儿子到父亲,第二 ......
[USACO08FEB]Hotel G
[USACO08FEB]Hotel G 线段树二分,最大字段和 对于操作二,是很简单的区间赋值 对于操作一,长度为$len$的,我们要找到最小的的 $x$ 满足 $[x, x + len -1]$ 的房间为空 在最大字段和的基础上,我们可以求出最长连续空房间的长度,对于要求长度为$len$的房间,可 ......
洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
#include<bits/stdc++.h> using namespace std; int a,b; bool zs(int x) { if(x%2>0) { for(int i=3;i<x;i+=2) if(x%i==0) return false; return true; }else r ......
P6146 [USACO20FEB]Help Yourself G 题解
题目链接 先按左端点从小到大排序。 设 $f(i)$ 表示前 $i$ 条线段的所有子集的复杂度之和。 考虑从 $f(i-1)$ 转移到 $f(i)$,即考虑新加进来第 $i$ 条线段的过程。第 $i$ 条线段加进来所新产生的贡献分两种: 设除了第 $i$ 条线段选中的线段集合为 $S$,则若 $S$ ......
洛谷 P2986 [USACO10MAR] Great Cow Gathering G(树形DP/换根DP)
https://www.luogu.com.cn/problem/P2986 输入 #1 5 1 1 0 0 2 1 3 1 2 3 2 3 4 3 4 5 3 输出 #1 15 推荐这位佬的思路以及题解 https://zhuanlan.zhihu.com/p/571948153 #include ......
P3033 [USACO11NOV]Cow Steeplechase G
给出 N 条平行于坐标轴的线段,要你选出尽量多的线段使得这些线段两两没有交点(顶点也算)。 横的与横的,竖的与竖的线段之间保证没有交点,输出最多能选出多少条线段。 #include <iostream> #include <algorithm> #include <cstring> #include ......
[USACO08FEB]Hotel G 线段树区间合并|维护最长的连续1
这个还是看代码,比讲的清楚 #include<bits/stdc++.h> #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define ls (rt<<1) #define rs (rt<<1|1) u ......