\(\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]+一些额外产生的贡献$

注意左端点已排好序,所以要想产生贡献,则之前的线段的右端点均小于该线段的左端点。

右端点我们可以利用前缀和提前预处理,于是这一部分的贡献就可以计算了。

接下来是正解时刻:

![QQ图片20200521214107.png](https://i.loli.net/2020/05/23/a7M5X1QcyDrRwJP.png)

USACO 刷题小记的更多相关文章

  1. USACO刷题之路

    重拾经典 本科生涯结束了,在大学做的ACM竞赛现在基本忘的差不多了.USACO作为一个经典的题库,本来是面向OI选手的,但是由于题目质量很高所以受到大家的好评,所以我这次就从它开始我的刷题之路吧. 由 ...

  2. USACO刷题之路,开始了

    几天前,重新开始刷题了. 重新刷题有几个原因: 1.曾经的OI经历,如今除了悟性高些.知识多些,大多已经遗忘.不希望真的让之前的OI水平就这么丢了. 2.越来越觉得,刷题真的是一件很开心的事情.大学中 ...

  3. USACO 刷题有感

    最近每天都尽量保持着每天一道USACO的题目,呵呵,一开始都是满简单的,一看题目基本上思路就哗啦啦地出来了,只不过代码实现有点麻烦,花了一些时间去调试,总体感觉还不错,但是越往后做,应该就很难保持一天 ...

  4. USACO 刷题记录bzoj

    bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草——背包 #include<cstdio> #include<cstring> #incl ...

  5. Atcoder刷题小记

    1. 2019.4.27 agc016d 一道很坑的题. 首先判无解,求出异或值后排个序就可以. 然后直接让\(a_i\rightarrow b_i\)并查集维护,注意离散化和判重,答案加上联通块个数 ...

  6. USACO刷题索引

    序 在距离CSP2019还有41天的国庆备战中,考了一场画风非常奇特的六校联赛,然后被教练建议刷一下这个巩固代码实现能力,然后就来了||ヽ(* ̄▽ ̄*)ノミ|Ю. 这个网站还是挺好玩儿的吧,刚开始各种 ...

  7. LintCode刷题小记491

    题目: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 样例: 11, 121, 1, 12321 这些是回文数. 23, 32, 1232 这些不是回文数. ...

  8. 【刷题记录】BZOJ-USACO

    接下来要滚去bzoj刷usaco的题目辣=v=在博客记录一下刷题情况,以及存一存代码咯.加油! 1.[bzoj1597][Usaco2008 Mar]土地购买 #include<cstdio&g ...

  9. USACO 好题汇总

    背景 这里主要是用来针对USACO上的题目的二次汇总,因为我在刷题的过程中,有的题目我是可以很快想到解决方案的,对于这种题目,就没有必要深究了.但是有一些题目对于我来说还是有一些挑战的,可能用朴素的算 ...

随机推荐

  1. 用CSS实现Tab页切换效果

    用CSS实现Tab切换效果 最近切一个页面的时候涉及到了一个tab切换的部分,因为不想用js想着能不能用纯CSS的选择器来实现切换效果.搜了一下大致有下面三种写法. 利用:hover选择器 缺点:只有 ...

  2. java中异常到底有什么用?举例

    异常的意义:马克-to-win:通过上面的例子,我们看出通过引入异常这种技术,即使出现不测(用户把0赋给除数),也可以让程序不崩溃,还能继续优雅 的运行.那,这种技术有用,值得学.马克-to-win: ...

  3. 在node中通过cors跨域。

    cors : 全称 cross origin resource share  跨资源共享 在nodejs 中可以通过在服务器端设置代码如下实现cors跨域 res.setHeader('Access- ...

  4. Virtual Function(虚函数)in c++

    Virtual Function(虚函数)in c++ 用法: virtual void log() { std::cout << "hello world!" < ...

  5. 最长非降子序列的N*logN解法

    之前讲到过求最长非降子序列的O(N^2)解法. 链接 这次在原来的基础上介绍一下N*logN解法. 该解法主要是维护一个数组minValue,minValue[i]表示最长上身子序列长度为i的数的最小 ...

  6. SSM框架整合(Spring、SpringMVC、Mybatis)

    #毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...

  7. cat /proc/cpuinfo 讲解

    查看cpu信息有什么用呢,我们来看看到底有哪些用处:1.和云服务提供商核算成本,现在基本是cpu和内存的费用最大,硬盘大小几乎被忽略了2.我们写程序时候是会关注多核还是单核的,否则不能充分利用多线程等 ...

  8. css 让一行文字 字与字的隔开一点

     效果: css: letter-spacing: 5rpx; 我这是小程序. 单位自带.px  rem em这些,随自己需要带.

  9. 现代 CSS 解决方案:Modern CSS Reset

    在早年间(其实也不是很早),写过几篇关于 CSS Reset 的文章 - reset.css 知多少. 详细描述了当时业界比较常用的,两个 CSS reset 方案:reset.css 与 Norma ...

  10. Java第十五周作业

    Cola公司的雇员分为以下若干类:(知识点:多态) [必做题]• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:getSalary(int mont ...