题解都是二分,想知道dp如何优化。(72pts代码)
#include<bits/stdc++.h>
using namespace std;
const int N=200010;
int f[5][N];
int a[5][N];int n;
int res=0;
int main(){
cin>>n;
for(int i=1;i<=3;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)f[1][i]=1;
for(int i=1;i<=3;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++){
if(a[i][k]>a[i-1][j])
f[i][k]+=f[i-1][j];
}
for(int i=1;i<=n;i++)res+=f[3][i];
cout<<res;
}