个人使用了离散+二分。。
#include#include #include #include using namespace std;int a[4005], b[4005], c[4005], d[4005], sum1[16000005], sum2[16000005], bin[16000005], num[16000005], top;int find(int x,int l,int r){ int m; while(l<=r) { m=(l+r)>>1; if(bin[m]==x) return m; if(bin[m]