随笔分类 -  Source -- USACO

摘要:洛谷传送门 题目大意:给你一个长度为$n$的序列和$m$个区间,每个区间内有且仅有一个1,其它数必须是0,求整个序列中数字1最多的数量 神题,竟然是$DP$ 定义$f_{i}$表示第i位放一个1时,最多的1的数量 因为每个区间至少一个点,如果要在$i$位置放一个1,显然在$i$左侧没覆盖$i$的区间 阅读全文
posted @ 2018-11-30 20:51 guapisolo 阅读(204) 评论(0) 推荐(0)
摘要:题目大意:略 网上各种神仙做法,本蒟蒻只想了一个离线+并查集的做法 对所有靴子按最大能踩的深度从大到小排序,再把所有地砖按照积雪深度从大到小排序 一个小贪心思想,我们肯定是在 连续不能踩的地砖之前 的一个位置开始跳,如果这都不能跳过这一段连续的坏地砖,说明这个靴子肯定不能用 那么离线靴子以后,会发现 阅读全文
posted @ 2018-10-16 13:23 guapisolo 阅读(280) 评论(0) 推荐(0)
摘要:题目大意:有一只狐狸从给定的S点开始逃跑(出发),向叶节点移动以逃离这棵树,叶节点可能出现农民去抓捕狐狸,当农民和狐狸出现在同一个节点的时候,狐狸会被抓住,农民和狐狸移动速度相同,求抓捕狐狸所需要的最少农民数 显然,当 u 节点的子树内存在一叶节点 i 满足deep[i]-deep[u]<=deep 阅读全文
posted @ 2018-10-14 12:37 guapisolo 阅读(187) 评论(0) 推荐(0)
摘要:题目大意:求可重叠的相同子串数量至少是K的子串最长长度 洛谷传送门 依然是后缀数组+二分,先用后缀数组处理出height 每次二分出一个长度x,然后去验证,在排序的后缀串集合里,有没有连续数量多于K个串的长度>=x, 但据说有一种高端做法是把二分换成单调队列,能减少常数,可惜我并没有看懂...... 阅读全文
posted @ 2018-09-24 22:51 guapisolo 阅读(135) 评论(0) 推荐(0)
摘要:洛谷P2743传送门 题目大意:给你一个序列,求其中最长的一对相似等长子串 一对合法的相似子串被定义为: 1.任意一个子串长度都大于等于5 2.不能有重叠部分 3.其中一个子串可以在全部+/-某个值后和另一个串完全相同 还是老套路了,其实只要求出每一项和前一项的差值序列,这样第三个问题可以被转化为求 阅读全文
posted @ 2018-09-24 22:50 guapisolo 阅读(135) 评论(0) 推荐(0)
摘要:扫描线裸题没什么好说的 注意空间不要开小了!!! 阅读全文
posted @ 2018-09-24 22:22 guapisolo 阅读(345) 评论(0) 推荐(0)
摘要:题目大意:给你一个N*N的棋盘,棋盘上每个点都有一个权值 第一问求一个权值形成的最大联通块中点的数量 第一问求两个权值共同形成的最大联通块中点的数量 提供一种并查集的做法:(感谢大佬们的题解)第一问把所有相同权值的相邻的点用带权并查集合并一下就OK了 第二问,就需要一些骚操作了 我们的目的是把两个不 阅读全文
posted @ 2018-09-24 22:21 guapisolo 阅读(422) 评论(0) 推荐(0)
摘要:题目大意:有N个站点的轻轨站,有一个容量为C的列车起点在1号站点,终点在N号站点,有K组牛群,每组数量为Mi(1≤Mi≤N),行程起点和终点分别为Si和Ei(1≤Si<Ei≤N)。计算最多有多少头牛可以搭乘轻轨。 一道经典的贪心题目,每当一头牛上车的时候,如果超载,我们就优先踢出去行程终点比较远的那 阅读全文
posted @ 2018-09-24 22:03 guapisolo 阅读(271) 评论(0) 推荐(0)
摘要:题目大意:给你两个序列,你可以两个序列的点之间连边 要求:1.只能在点权差值不大于4的点之间连边 2.边和边不能相交 3.每个点只能连一次 设表示第一个序列进行到 i,第二个序列进行到 j,最多连的边数,容易得到方程: 不连边: 连边: 实际是这样的,每个位置如果想连边,就要从能连边的位置之前找最大 阅读全文
posted @ 2018-09-24 21:57 guapisolo 阅读(154) 评论(0) 推荐(0)
摘要:题目大意:给你两个序列,可以序列进行若干次旋转操作(两个都可以转),对两个序列相同权值的地方连边,求最少的交点数 记录某个值在第一个序列的位置,再记录第二个序列中某个值 在第一个序列出现的位置 ,求逆序对数量即可 本以为是一道逆序对水题,结果被卡了20分。看了题解才恍然大悟,实际上,序列可以旋转 ≠ 阅读全文
posted @ 2018-09-24 21:54 guapisolo 阅读(197) 评论(0) 推荐(0)
摘要:题目大意:给你一棵边权树,定义两点间距离为它们唯一路径上的最小路权,求与某点距离不大于K(k为已知)的点的数量 带权并查集维护集合内元素总数 路和问题 都按权值大到小排序,枚举问题, 建权值不小于K的边,并查集维护连通性,求集合元素内总数即可 阅读全文
posted @ 2018-09-24 21:52 guapisolo 阅读(483) 评论(0) 推荐(0)
摘要:题目大意:给你一个序列,你可以翻转任意一段子序列一次,求最长不下降子序列长度 tips:子序列可以不连续,但不能破坏在原序列中的顺序 观察数据范围,n<=50,很小,考虑dfs *dfs来跑区间dp可以巧妙的解决区间两端元素的置换问题 记忆化搜索,f[i][j][l][r] 代表对于区间[i,j], 阅读全文
posted @ 2018-09-24 21:41 guapisolo 阅读(492) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,求以某节点为根的子树中,权值大于该节点权值的节点数 本题考查dfs的性质 离散+树状数组求逆序对 先离散 我们发现,求逆序对时,某节点的兄弟节点会干扰答案 所以,我们在递推时统计一次答案,递归时再统计一次答案,两者的差值就是最终结果 阅读全文
posted @ 2018-09-20 09:05 guapisolo 阅读(189) 评论(0) 推荐(0)