Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

暴力破解DFS

Posted by pipipapasha at 2023-10-21 22:48:49 on Problem 1166
#include <iostream>
using namespace std;
int y[9],x[9],seq[9],cnt,req[9],reqcnt,i,j;
void DFS(int dq){
    int i;
    if(dq==8)
        for(i=0;i<4;i++){
            seq[dq] = i;
            cnt = 0;
            for(j=0;j<9;j++)cnt+=seq[j];
            if(cnt<reqcnt)
                if(((seq[0]+seq[1]+seq[3])%4==y[0])&&
                    ((seq[0]+seq[1]+seq[2]+seq[4])%4==y[1])&&
                    ((seq[1]+seq[2]+seq[5])%4==y[2])&&
                    ((seq[0]+seq[3]+seq[4]+seq[6])%4==y[3])&&
                    ((seq[0]+seq[2]+seq[4]+seq[6]+seq[8])%4==y[4])&&
                    ((seq[2]+seq[4]+seq[5]+seq[8])%4==y[5])&&
                    ((seq[3]+seq[6]+seq[7])%4==y[6])&&
                    ((seq[4]+seq[6]+seq[7]+seq[8])%4==y[7])&&
                    ((seq[5]+seq[7]+seq[8])%4==y[8]))
                    for(j=0;j<9;j++){
                        req[j] = seq[j];
                        reqcnt = cnt;
                    }
        }
    else
    for(i=0;i<4;i++){
        seq[dq] = i;
        DFS(dq+1);
    }
}
int main()
{
    for(i=0;i<9;i++){
        cin>>y[i];
        y[i] = (4-y[i])%4;
    }
    reqcnt = 999;
    DFS(0);
    for(i=0;i<9;i++)
        for(j=0;j<req[i];j++)cout<<i+1<<' ';
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator