C/C++の宿題を片付けます 99代目at TECH
C/C++の宿題を片付けます 99代目 - 暇つぶし2ch201:198
07/11/10 09:51:13
>>200 解ける = 配置が一意的に求まる 解けている全配置を求めるプログラム書いたが 二つ目が出てこない 時間がかかりすぎる

#include <iostream>
using namespace std;
main(){
int G[9][9],R[9][9],S[9][9];
int x,y[81],m,n,l,d,cnt;

for(n=0;n<81;n++)y[n]=0;
for(m=0;m<9;m++)for(n=0;n<9;n++)G[m][n]=R[m][n]=S[m][n]=1;
d=cnt=0;

for(;;){
x=y[d]; m=d/9; n=d%9; l= 3*(m/3) + n/3;
if( G[m][x]+R[n][x]+S[l][x]==3 ){
if(d<80){G[m][x]=R[n][x]=S[l][x]=0; d++; y[d]=0;continue;}
cnt++;for(int k=0;k<81;k++){if(k%9==0)cout<<endl;cout<<y[k]<<" ";};d--;}

ST:
if(y[d]<8)y[d]++;
else{
if(d==0){cout<<cnt;return 0;}
d--;
x=y[d]; m=d/9; n=d%9; l= 3*(m/3) + n/3;
G[m][x]=R[n][x]=S[l][x]=1;
goto ST;}
}}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch