UVa12186 Another Crisis && [Dynamic Arrays in Pascal]

链接:Link 耗时:0.586s

昨晚做的太急了,没时间写总结,正好下午有空,补上。

这是一道典型的树形动态规划,不是很难,但十分坑语言。思路大致如下:

对于第 $i$ 个节点,用 $d(i)$ 表示其上诉所需的最小工人数。若 $i$ 为叶节点,则 $d(i)=1$;否则,遍历求出 $i$ 的子节点所对应的 $d$ 值,并由小到大排序,取出最小的几个相加,即为 $d(i)$。

很容易想到用递归来实现。但对于“子节点的 d 值的排序”实现起来却十分困难:因为事先不知道有多少个数。当然啦,如果是 C++ 组,用 vector 可以轻松搞定,可至于 P 党,实现起来却难上加难。思来想去,决定试试 Pascal 的动态数组。磕磕碰碰调了近 1 个小时,终于 AC 了。

//Accepted
var
tree: array [0..100000] of array of int64;
T: Integer;
f: array [0..100000] of int64;
i,l,n,x:longint;

function min(x,y: int64): int64;
begin
if x<y then exit(x) else exit(y);
end;

procedure sort(var arr: array of int64;l,r:longint); overload;
var
i,j:longint;
m,t: int64;
begin
i := l;
j := r;
m := arr[(l+r) >> 1];
repeat
while arr[i]<m do inc(i);
while arr[j]>m do dec(j);
if i<=j then
begin
t := arr[i];
arr[i] := arr[j];
arr[j] := t;
inc(i);
dec(j);
end;
until i>j;
if i<r then sort(arr, i, r);
if l<j then sort(arr, l, j);
end;

procedure sort(var arr: array of int64); overload;
begin
sort(arr, low(arr), high(arr));
end;
function dp(x: longint): int64;
var
arr: array of int64;
l,i, num: longint;
begin
if f[x] <> 0 then
begin
dp := f[x];
exit;
end;
if length(tree[x]) = 0 then
begin
dp := 1;
f[x] := 1;
exit;
end;
l := length(tree[x]);
SetLength(arr, l);
for i := Low(tree[x]) to High(Tree[x]) do
arr[i] := dp(tree[x][i]);
Sort(arr);
num := (l*T-1) div 100+1;
for i := Low(arr) to num-1 do
f[x] := f[x] + arr[i];
dp := f[x];
end;

begin
assign(input, 'main.in');reset(input);
assign(output,'main.out');rewrite(output);
readln(n, T);
while n>0 do
begin
fillchar(f, sizeof(f), 0);
fillchar(tree, sizeof(tree), 0);
for i := 1 to n do
begin
read(x);
SetLength(tree[x], length(tree[x])+1);
tree[x][high(tree[x])] := i;
end;
readln;
dp(0);
writeln(f[0]);
readln(n, T);
end;
close(input); close(output);
end.

Dynamic Arrays

这里,再总结一下动态数组的用法。

  1. 定义:a: array of [type];
  2. 设置长度: SetLength(a, 10);
  3. 长度加一: SetLength(a, Length(a)+1);
  4. 取得最大、最小下标: High(a), Low(a)

事实上,从 1.1 版本开始 FPC 就支持 Dynamic Arrays 了。所以在 NOIP 竞赛中我们大可放心使用。


UVa11584 Partitioning by Palindromes

这是一道区间型 DP,转移方程很简单,但在实现的过程中却遇见了很多坑,在此记录一下。链接:Link 耗时:0.368s

容易想到,前 $i$ 个数的划分情况可以由 $1,2,3,\ldots,i-1$ 的划分情况来决定。因此很容易得到状态转移方程:

$$d[i] = min(d[i], d[j]+1)$$

其中 $j = 0, 1, 2,\ldots,n-1$ 并且 $s[j+1, i]$ 为回文串,初始条件:$d[i] = i$。$d[i]$ 表示前 i 项的最小划分。这样一来状态转移的复杂度就为 $O(n^2)$。

但状态转移的判断呢?“回文串”是一个复杂的条件,判断一个串是否为回文串需要将该串至少遍历一遍。这样一来时间复杂度就上升为 $O(n^3)$ 了。而事实上在这种算法中有许多无谓的计算,因此我们可以先对字符串进行预处理:用 huiwen[i,j] 表示 $s[i,j]$ 是否为回文串(奇怪的名字。。。)。如此一来,时间复杂度就降为 $O(n^2)$ 了。

var
s: AnsiString;
n, _, i, j, l: integer;
huiwen: array [1..1000, 1..1000] of boolean; //s[i,j]是否为回文串
dp: array [0..1000] of integer; //一定从0开始,否则当整串为回文串时就考虑不到了。

function min(x,y: integer): integer;
begin
if x<y then exit(x) else exit(y);
end;

procedure process(i,j: integer); //对回文串进行预处理
var
mid: Integer;
x,y: integer;
begin
if j = i then
begin
huiwen[i,j] := true;
exit;
end;
mid := i + (j-i+1) shr 1;
x := i;
y := j;
while (x <= mid) and (s[x] = s[y]) do
begin
inc(x);
dec(y);
end;
huiwen[i, j] := x > mid;
end;

begin
//assign(input, 'main.in'); reset(input);
//assign(output, 'main.out'); rewrite(output);
readln(n);
for _ := 1 to n do
begin
readln(s);
l := length(s);
//Pre-process
fillchar(huiwen, sizeof(huiwen), 0);
for i := 1 to l do
for j := i to l do //一定是从i开始,这个错卡了我很久。
process(i, j);
//DP
for i := 1 to l do
begin
dp[i] := i;
for j := 0 to i-1 do
if huiwen[j+1, i] then
dp[i] := min(dp[i], dp[j]+1);
end;
write(dp[l]);
{if _ <>n then }writeln; //吐槽一下:一开始我还谨慎地加上这句以避免行末回车,没想到UVa居然报错了。。看来UVa的比较算法还有待改进啊。
end;

//close(input);close(output);
end.

UVa437 The Tower of Babylon

链接:The Tower of Babylon 耗时:0.015s

这是刘汝佳的紫书中”DAG 中的动态规划”中的习题,我拿它用来熟悉 DAG 中的动态规划。

我们不妨进行逆向考虑:现堆上面的方块,然后考虑在下面进行叠加。这样子一来,影响决策的就只是最下面方块的尺寸了。

对于这种出现了”大套小”这样的二元关系的题,我们可以将其视为一个有向无环图:其中每个节点为一个状态,状态的转移是有固定的方向的(在此题中,状态转移为从小的方块到大的方块)。

但是这道题又不同于平常的 DAG 动态规划:若将边长视为状态的话,则要开一个巨大的数组,这是不可以接受的。因此,我们要换一种思维方式:只记录方块的序号和摆放的方式(如现将边长从小到大进行排序,然后用一个标志 k 表示当前是以第 k 小的边长作为高)。

至此,思路已经清晰了。用 $dp(i, k)$ 表示 “第 i 个方块以第 k 条边为高进行摆放” ,以下给出状态转移方程:

$$dp(i, k) = max\{dp(i, k), dp(j, k_2)\}$$

其中 $j,k_2$ 遍历所有顶面矩形比 $dp(i, k)$ 小的状态。

代码实现首次尝试了 Pascal 中的 object 类型,使其更加工整,但不可避免地损耗了一些性能。

type
Cube = object
a: array [1..3] of longint;
procedure init(x,y,z: longint);
function height(k: integer): longint;
function low(k: integer): longint;
function high(k: integer): longint;
end;

function max(x,y: longint): longint;
begin
if x>y then max := x else max := y;
end;

procedure swap(var x,y: longint);
var
t: longint;
begin
t := x;
x := y;
y := t;
end;

function Cube.height(k: integer): longint;
begin
height := self.a[k];
end;

function Cube.high(k: integer): longint;
begin
case k of
1: high := a[3];
2: high := a[3];
3: high := a[2];
end;
end;

function Cube.low(k: integer): longint;
begin
case k of
1: low := a[2];
2,3: low := a[1];
end;
end;

procedure Cube.init(x, y, z: longint);
begin
if x>y then swap(x,y);
if y>z then swap(y,z);
if x>y then swap(x,y);
a[1] := x;
a[2] := y;
a[3] := z;
end;

var
f: array [1..30, 1..3] of longint;
i,j,m,n,x,y,z: longint;
cnt: longint;
cubes: array [1..30] of Cube;

function dp(id, k: integer): longint;
var
l, h, hi: longint;
i, j: integer;
begin
if f[id, k] > 0 then
exit(f[id, k]);
l := cubes[id].low(k);
hi := cubes[id].height(k);
h := cubes[id].high(k);

f[id, k] := hi;

for i := 1 to n do
begin
//if i = id then continue; //此处在一开始时忘记考虑了立方体有无穷多个这一条件。
for j := 1 to 3 do
begin
if not ((cubes[i].low(j) < l) and (cubes[i].high(j) < h)) then
continue;
f[id, k] := max(f[id, k], dp(i, j)+hi);
end;
end;

dp := f[id, k];
end;

begin
assign(input, 'main.in');reset(input);
assign(output, 'main.out');rewrite(output);
read(n);
cnt := 0;
while n > 0 do
begin
inc(cnt);
for i := 1 to n do
begin
read(x,y,z);
cubes[i].init(x,y,z);
end;
fillchar(f, sizeof(f), 0);

m := 0;
for i := 1 to n do
for j := 1 to 3 do
m := max(m, dp(i, j));

writeln('Case ', cnt, ': maximum height = ', m);

read(n);
end;
close(input);close(output);
end.

NOIP2011 表达式计算

记得 11 年的时候,觉得这道题爆难,根本无从下手。三年后再次回顾,终于 AC 了,就当是对表达式求值和动态规划的复习吧。

题目:Link

// Accepted.
#include <iostream>
#define Mod 10007
using namespace std;

typedef struct {
long long v0; //当前值为 0 的个数
long long v1; //当前值为 1 的个数
char ch; //当前字符
} vertex;

vertex f[100000];

void merge_sum(int p) {
int w0 = f[p-1].v0 * f[p].v0;
int w1 = f[p-1].v0*f[p].v1+f[p-1].v1*f[p].v0+f[p-1].v1*f[p].v1;
f[p-1].v0 = w0 % Mod;
f[p-1].v1 = w1 % Mod;
}

inline void merge_product(int p) //处理当前的值和前一个值取'*'的操作
{
int w0=f[p-1].v0*f[p].v0+f[p-1].v0*f[p].v1+f[p-1].v1*f[p].v0;
int w1=f[p-1].v1*f[p].v1;
f[p-1].v0=w0%Mod;
f[p-1].v1=w1%Mod;
}

int main()
{
int n;
cin>>n;
f[0].v0=f[0].v1=1;
while (n--)
{
now++; //新建一个空位读入新符号
cin>>f[now].ch;
f[now].v0=f[now].v1=1; //初始化当前符号的前面的值 (虽然')'除外,但也不影响)
if (f[now].ch=='+')
{
if (f[now-1].ch=='*') //处理'*'
{
now--;
merge_product(now);
f[now]=f[now+1];
}
if (f[now-1].ch=='+') //处理'+'
{
now--;
merge_sum(now);
f[now]=f[now+1];
}
}
if (f[now].ch=='*')
if (f[now-1].ch=='*') //处理'*'
{
now--;
merge_product(now);
f[now]=f[now+1];
}
if (f[now].ch==')') //处理')'(比较麻烦)
{
now--;
if (f[now].ch=='*')
{
merge_product(now);
now--;
}
if (f[now].ch=='+')
{
merge_sum(now);
now--;
}
now--;
f[now].v0=f[now+1].v0;
f[now].v1=f[now+1].v1;
if (f[now].ch=='*')
{
merge_product(now);
now--;
}
}
}
if (f[now].ch=='*') //处理完了以后,可能还有残留的'*'和'+'
{
merge_product(now);
now--;
}
if (f[now].ch=='+')
{
merge_sum(now);
now--;
}
cout<<f[0].v0;
return 0;
}

学习 Delphi 面向对象编程的一点心得

mybirth:rQyWBk4peel9fb38qU7N4g==:X3fqxZii5uGNGc/j5cnwYA==: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
**THIS CONTENT IS ENCRYPTED**
 
DECRYPTING...

一个键盘钩子的写法,很实用

mybirth:cPgeZAhL4xAiK6WvgYZhhQ==:X1pavNuY3ivHo44bBrnPOQ==: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
**THIS CONTENT IS ENCRYPTED**
 
DECRYPTING...