C/C++の宿題を片付けます 99代目 at TECH
[2ch|▼Menu]
201: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

4817日前に更新/222 KB
担当:undef