直接暴力n^2即可,好吧,还是少写这种题..
#include <bits/stdc++.h> using namespace std; const int N=1005; int a[N],b[N]; int main() { int n,m; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(int i=1;i<=m;i++) scanf("%d",&b[i]); int ans=2e9; for(int i=1;i<=m-n+1;i++)//枚举起点 { int res=0; for(int j=i;j<=i+n-1;j++) { res+=(a[j-i+1]-b[j])*(a[j-i+1]-b[j]); } ans=min(ans,res); } cout<<ans<<endl; return 0; }
没错,就是写两个水题...