とあるコンテストで全探索をかけようとしました。 汚いし重いし間違っているし、最悪です。
int sx1,sy1,dx1,dy1; int sx2,sy2,dx2,dy2; int result=-1; for(sy1=0;sy1<height;sy1++) { for(sx1=0;sx1<width;sx1++) { for(dy1=sy1+1;dy1<height;dy1++) { for(dx1=sx1+1;dx1<width;dx1++) { int ln,pn; //ここから for(sy2=0;sy2+1<sy1;sy2++) { for(sx2=0;sx2<width;sx2++) { for(dy2=sy2+1;dy2+1<sy1;dy2++) { for(dx2=sx2+1;dx2<width;dx2++) { ln=l[dy1][dx1]-l[sy1][dx1]-l[dy1][sx1]+l[sy1][sx1]; ln+=l[dy2][dx2]-l[sy2][dx2]-l[dy2][sx2]+l[sy2][sx2]; pn=p[dy1][dx1]-p[sy1][dx1]-p[dy1][sx1]+p[sy1][sx1]; pn+=p[dy2][dx2]-p[sy2][dx2]-p[dy2][sx2]+p[sy2][sx2]; if(abs(ln-pn)<=maxDiff && ln+pn>result)result=ln+pn; }} }} //ここまでのような4重ループがあと3個ある }} }}
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
まだコメントがありません。最初にコメントを残しませんか?
コメント投稿には、twitter認証が必要です。
Twitter認証