代码:
#include<bits/stdc++.h>
#define MOD 998244353
using namespace std;
#define MAXN 2050
int dp[MAXN][2] , sum[MAXN][2] , a[MAXN] , b[MAXN];
int test , n , m ;
long long int ans=0;
int main()
{
scanf("%d",&test);
while(test--)
{
scanf("%d%d",&n,&m);
ans=0;
for(int i=0;i<n;i++)scanf("%d",&a[i]);
for(int i=0;i<m;i++)scanf("%d",&b[i]);
memset(sum,0,sizeof(sum));
for(int i=0;i<n;i++)
{
memset(dp,0,sizeof(dp));
long long int xcx0=0,xcx1=1;
for(int j=0;j<m;j++)
{
dp[j][0]=dp[j][1]=0;
if(a[i]==b[j])
{
dp[j][0]=xcx1;
dp[j][1]=xcx0;
ans=ans+xcx0+xcx1;
ans%=MOD;
}
else if(a[i]>b[j]) xcx0=(xcx0+sum[j][0])%MOD;
else xcx1=(xcx1+sum[j][1])%MOD;
}
for(int j=0;j<m;j++)
{
sum[j][0]=(sum[j][0]+dp[j][0])%MOD;
sum[j][1]=(sum[j][1]+dp[j][1])%MOD;
}
}
printf("%lld\n",ans);
}
}