ABC略过
D 单调栈?两段DP就A了
E 卡了两个小时,细节多
fup(i,0,S)
fup(j,0,S)
{
if( i and j) x[i][j]+=t[i-1][j-1];
if(!i and !j) continue;
if( j) x[i][j]+=x[i][j-1];
if( i) x[i][j]+=x[i-1][j];
if( i and j) x[i][j]-=x[i-1][j-1];
}
fdown(i,S,0) fdown(j,S,0) y[i][j]+=t[i+1][j+1]+y[i][j+1]+y[i+1][j]-y[i+1][j+1];