T1.
DP.
(G[i][j])表示从(0)到(j)使用(i)元的最大期望,(H[i][j])表示从(j)到(0)使用(i)元的最大期望.
对每个可能的终点(x),使用双指针求出来回的最优解.
复杂度为(O(C(|V|+|E|))).
T2.
模拟.
一种做法:
存储每个暂存区.
对commit命令生成的commit记录parent和对应暂存区;对merge命令生成的commit记录两个parent.
commit和merge的复杂度都是(O(1)).
对于write,read,ls,unlink,关键都在找到文件名对应的文件.从head出发搜索所有祖先,总复杂度至多是操作数( imes)文件数.
对于文件,使用若干三元组((L,R,text))记录,表示这段区间从(L)到(R),文本是(text),不足用.
补全.
T3.
模拟.
写完读入就比赛结束了.据说按照题面的操作写完就能80分左右.