Luogu P2426 删数 解题报告

P2426 删数

有 $n$ 个不同的正整数数 $x_1,x_2,x_3…x_n$ 排成一排,我们可以从左边或右边去掉连续的 $i (1 \leq i \leq n)$ 个数(只能从两边删除数),剩下 $n - i$ 个数,再把剩下的数按以上操作处理,直到所有的数都被删除为止

每次操作都有一个操作价值,比如现在要删除从i位置到k位置上的所有的数。操作价值为$|x_i - x_k| * (k - i + 1)$,如果只去掉一个数,操作价值为这个数的值问如何操作可以得到最大值,求操作的最大价值。

$n \leq 100$

阅读更多

UVA1560 Extended Lights Out 解题报告

UVA1560 Extended Lights Out

有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。

即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。

请你写一个程序,确定需要按下哪些按钮,恰好使得所有的灯都熄灭。

根据上面的规则,我们知道

  1. 第2次按下同一个按钮时,将抵消第1次按下时所产生的结果。因此,每个按钮最多只需要按下一次

  2. 各个按钮被按下的顺序对最终的结果没有影响

  3. 对第1行中每盏点亮的灯,按下第2行对应的按钮,就可以熄灭第1行的全部灯。

如此重复下去,可以熄灭第1、2、3、4行的全部灯。同样,按下第1、2、3、4、5列的按钮,可以熄灭前5列的灯。

阅读更多

Luogu P1156 垃圾陷阱 解题报告

P1156 垃圾陷阱

“垃圾井”是农夫们扔垃圾的地方,它的深度为$D(2 \le D \le 100)$英尺。

卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。

每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。

假设卡门预先知道了每个垃圾扔下的时间$t (0 < t \le 1000)$,以及每个垃圾堆放的高度$h(1 \le h \le 25$)和吃进该垃圾能维持生命的时间$f(1 \le f \le 30)$,要求出卡门最早能逃出井外的时间,假设卡门当前体内有足够持续$10$小时的能量,如果卡门$10$小时内没有进食,卡门就将饿死。

阅读更多

Luogu P3842 [TJOI2007]线段 解题报告

P3842 [TJOI2007]线段

在一个 $n*n$ 的平面上,在每一行中有一条线段,第 $i$ 行的线段的左端点是$(i, l_i)$,右端点是$(i, r_i)$,其中 $i \leq l_i \leq r_i \leq n$。

你从$(1, 1)$点出发,要求沿途走过所有的线段,最终到达$(n, n)$点,且所走的路程长度要尽量短。

更具体一些说,你在任何时候只能选择向下走一步(行数增加 1)、向左走一步(列数减少 1)或是向右走一步(列数增加 1)。当然,由于你不能向上行走,因此在从任何一行向下走到另一行的时候,你必须保证已经走完本行的那条线段。

阅读更多

Luogu P2132 小Z的队伍排列 解题报告

P2132 小Z的队伍排列

小Z想给班里的同学拍一张合影,为此需要先让大家排好队伍。他希望大家站成 $k$ 排,并规定了每排的人数,保证每一排的人数都不多于后面一排的人数。

这时小Z发现队伍看起来还是乱糟糟的,原因是大家的身高互不相同。于是,他希望排头对齐,每位同学都比自己正后方的同学以及排头方向的同学矮。

排完以后,善于思考的小Z还想知道一共有多少种排法。

阅读更多