首页 > 代码库 > NOIP 2011 Day 1 部分题解 (Prob#1 and Prob#2)

NOIP 2011 Day 1 部分题解 (Prob#1 and Prob#2)

Problem 1: 铺地毯

乍一看吓cry,地毯覆盖...好像是2-dims 线段树,刚开头就这么难,再一看,只要求求出一个点,果断水题,模拟即可.(注意从标号大的往小的枚举,只要有一块地毯符合要求就输出,返回.)

(全篇未完结,代码就不发了.)

Problem 2: 选择客栈

模拟果断会超时,所以用类似动态规划的方法.

用$\text{sum}\left[ i\right]$表示从一号客栈到i号客栈途中的符合要求的Café总数,自然,$\text{O}\left( n\right)$的时间复杂度不必多说,可以边读入边统计.

设三个数组分别为$f[1],f[2],f[3]$,以下分别简记为$a,b,c$,设一个临时变量$t$,$color[i]$为i号客栈的颜色编号(雾...). $a[i]$即后一个人住在第i种颜色的客栈此时选择的总方案数(当然要设置一个累加变量以便输出,比如$s$),$b[i]$表示扫描到这时的有效客栈总数(此颜色),$c[i]$表示到此之前此颜色的有效Café总数(当然,不必同色).然后递推,再将结果加入$s$.