mikecat_mixc 2012-08-19 23:54:40

[C++] 全探索?? このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

とあるコンテストで全探索をかけようとしました。 汚いし重いし間違っているし、最悪です。

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個ある
    }}
}}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] 何がしたかったのか

このエントリーをはてなブックマークに追加

10年位前、炎上しているプロジェクトの支...

void funcX() {
    int a;
    a = func...

鑑賞する »

[C] 既存のコードを極力残したかったらしい。

このエントリーをはてなブックマークに追加

特別仕様版で関数の機能変えたかったみたい...

/*プロトタイプ宣言省略*/

/*関数hogehoge*/
#ifnde...

鑑賞する »