USACO 刷题小记
\(\text{High Card Low Card}\)
USACO2015DEC Platinum T2
贝西和艾尔西在玩游戏。有 \(2n\) 张牌,牌上的数字是 \(1\) 到 \(2n\) ,贝西 \(n\) 张,艾尔西 \(n\) 张。
贝西事先知道艾尔西先后出的 \(n\) 张牌。
她们进行 \(n\) 轮出牌,轮流各出一张牌。一开始,谁的数字大谁赢。
贝西有一个特殊权利,她可以在任意时刻把规则从谁大谁赢改成谁小谁赢,问贝西最多能赢多少轮。
\(2\le n\le 50000\)
\(1.00s,\ 128\ MB\)
Solution
考虑贪心。
我们记 $pre[i]$ 表示 $1$ 到 $i$ 中最多能赢几局, $suf[i]$ 表示 $i$ 到 $n$ 中最多能赢几局。
答案 $ans = \min\limits_{i=0}^{n} (pre[i] + suf[i+1])$
如果前面和后面选的数重复了怎么办?不存在这种情况!
你如果两个地方用的同一张牌i,肯定有一张牌没被用,那么分情况讨论。
1.比这张牌大。 那么这张牌可以替换掉在规则1下的牌i
2.比这张牌小。 那么这张牌可以替换掉在规则2下的牌i
中间过程用两个 $set$ 维护一下即可
复杂度 $O(nlogn)$
\(\text{Cave Paintings}\)
USACO2020JAN Platinum T1
给你一张 \(n\times m\) 的图,每个格子要么是空的,要么是石头。
你可以给空格子上水,但是上完后的图要真实的(符合水不会再向四周流动)。
问你所有合法的上色的方案数,答案对 \(10^9+7\) 取模。
\(1\le n,m\le 1000\)
\(2.00s,\ 256\ MB\)
Solution
从下往上考虑,显然一层可以分成若干段空格子,使得每一段都是连通的。
观察知这是一个树形结构,那么我们可以做类树形dp:
$dp_u = 1 + \Pi _{v\in son(u)} dp_v$
从下往上用并查集维护就行了。
复杂度 $O(nm)$
\(\text{Help Yourself}\)
USACO2020FEB Platinum T3
在一维数轴上有 \(n\) 条线段,第 \(i\) 条线段包含满足 \(l_i \le x \le r_i\) 的所有实数 \(x\) 。
定义一组线段的并为所有被至少一条线段所包含的实数 \(x\) 的集合。
定义一组线段的复杂度为这些线段的并的连通区域数量的 \(K\) 次方。
计算所有 \(2^n\) 个子集的线段组复杂度之和,答案对 \(10^9+7\) 取模。
\(1\le n\le 10^5, 2\le K\le 10, l_i < r_i, 保证 \{ l_i, r_i\} = \{ 1, 2, ..., 2n-1,2n \}\ (1\le i\le n)\)
\(2.00s,\ 256\ MB\)
Solution
首先将这些线段按左端点先排好序。
考虑 $K=1$ 时如何做。这一档是 Gold T2 原题。
用 $dp[i]$ 表示前 $i$ 个线段的 $2^i$ 个子集的线段组复杂度之和。
那么第 $i$ 根线段不选: $dp[i-1]$ ;
第 $i$ 根线段选:$dp[i-1]+一些额外产生的贡献$
注意左端点已排好序,所以要想产生贡献,则之前的线段的右端点均小于该线段的左端点。
右端点我们可以利用前缀和提前预处理,于是这一部分的贡献就可以计算了。
接下来是正解时刻:

USACO 刷题小记的更多相关文章
- USACO刷题之路
重拾经典 本科生涯结束了,在大学做的ACM竞赛现在基本忘的差不多了.USACO作为一个经典的题库,本来是面向OI选手的,但是由于题目质量很高所以受到大家的好评,所以我这次就从它开始我的刷题之路吧. 由 ...
- USACO刷题之路,开始了
几天前,重新开始刷题了. 重新刷题有几个原因: 1.曾经的OI经历,如今除了悟性高些.知识多些,大多已经遗忘.不希望真的让之前的OI水平就这么丢了. 2.越来越觉得,刷题真的是一件很开心的事情.大学中 ...
- USACO 刷题有感
最近每天都尽量保持着每天一道USACO的题目,呵呵,一开始都是满简单的,一看题目基本上思路就哗啦啦地出来了,只不过代码实现有点麻烦,花了一些时间去调试,总体感觉还不错,但是越往后做,应该就很难保持一天 ...
- USACO 刷题记录bzoj
bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草——背包 #include<cstdio> #include<cstring> #incl ...
- Atcoder刷题小记
1. 2019.4.27 agc016d 一道很坑的题. 首先判无解,求出异或值后排个序就可以. 然后直接让\(a_i\rightarrow b_i\)并查集维护,注意离散化和判重,答案加上联通块个数 ...
- USACO刷题索引
序 在距离CSP2019还有41天的国庆备战中,考了一场画风非常奇特的六校联赛,然后被教练建议刷一下这个巩固代码实现能力,然后就来了||ヽ(* ̄▽ ̄*)ノミ|Ю. 这个网站还是挺好玩儿的吧,刚开始各种 ...
- LintCode刷题小记491
题目: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 样例: 11, 121, 1, 12321 这些是回文数. 23, 32, 1232 这些不是回文数. ...
- 【刷题记录】BZOJ-USACO
接下来要滚去bzoj刷usaco的题目辣=v=在博客记录一下刷题情况,以及存一存代码咯.加油! 1.[bzoj1597][Usaco2008 Mar]土地购买 #include<cstdio&g ...
- USACO 好题汇总
背景 这里主要是用来针对USACO上的题目的二次汇总,因为我在刷题的过程中,有的题目我是可以很快想到解决方案的,对于这种题目,就没有必要深究了.但是有一些题目对于我来说还是有一些挑战的,可能用朴素的算 ...
随机推荐
- 利用Charles做代理测试电脑上写的H5页面
做H5页面的同学可能经常会遇到一个场景,就是电脑上调试好的页面怎么在手机上访问测试呢? 下面就介绍一种自己经常使用的方式,利用Charles代理软件来实现! 安装Charles 直接去官网下载对应的系 ...
- ES6-11学习笔记--正则表达式的扩展
y修饰符 u修饰符 复习以前的修饰符: i(忽略大小写) m(多行匹配) g(全局匹配) y修饰符:粘连修饰符 const str = 'aaa_aa_a' const reg1 = /a+/ ...
- 顺序、随机IO和Java多种读写文件性能对比
概述 对于磁盘的读写分为两种模式,顺序IO和随机IO. 随机IO存在一个寻址的过程,所以效率比较低.而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高. 基本流程 总体结构 我们编 ...
- audio小记
写H5活动页的需要音频,图标旋转停止保持当时的旋转角度,这样视觉体验效果好: 之前写法是点击pause()就直接停止动画,后来发现了animation有个比较好的属性animation-play-st ...
- rem,px,em最大的区别;
px:px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.移动端的分辨率很多.所以px不适用移动端em:em的值不固定:其长度继承父级元素的字体大小rem:相对于根元素htm ...
- Blazor组件提交全记录: FullScreen 全屏按钮/全屏服务 (BootstrapBlazor - Bootstrap 风格的 Blazor UI 组件库)
Blazor 简介 Blazor 是一个使用 .NET 生成的交互式客户端 Web UI 的框架.和前端同学所熟知的 Vue.React.Angular 有巨大差异. 其最大的特色是使用 C# 代码( ...
- MySQL发展历史
MySQL(发音为"my ess cue el")是一种关系型数据库管理系统, MySQL数据库管理系统由瑞典的DataKonsultAB公司研发,该公司被Sun公司收购,现在Su ...
- Mysql各版本号的含义
1)MySQL Community Server 社区版本,开源免费,但不提供官方技术支持2)MySQL Enterprise Edition企业版本,需付费,可以试用30天3)MySQL Clust ...
- Codeforces Round #771 (Div. 2), problem: (B) Odd Swap Sort
Problem - B - Codeforces 就是给你个序列, 给他整成升序的, 每次操作可以使相邻两个数交换位置, 交换条件是二数之和为奇数 结果只需输出是否可以整成升序的 思路: 需要奇数偶数 ...
- cookie,sessionStorage,localStorage
本文转 sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务 ...