Exemple #1
0
void solve(int k, int l)
{
	int i;
	if(k==n)
	{
		nsol++;
		if(n>6 && row[0]<n/2)nsol++;
		printsol();
		return;
	}

	for(i=0;i<l;i++)
	{
		if(!col[i] && !diag1[i+k] && !diag2[k-i+MAXN])
		{
			row[k]=i;
			col[i]++;
			diag1[i+k]++;
			diag2[k-i+MAXN]++;

			solve(k+1,n);
			
			col[i]--;
			diag1[i+k]--;
			diag2[k-i+MAXN]--;
		}
	}
}
Exemple #2
0
int main()
{
	int price, i;
	for(i = 1; i <= SIZE; i++) 
	{	
		price = rodcut_dp(i);
		printf("Maximum price for length %d = %d\n", i, price);
		printsol(i);
		printf("\n");
	}
	return 0;
}
bool queen()
{
int sol[N][N] = { {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0}
    };
    if(queen_util(sol,0)==1)
    {
    printf(" all queen placed");
    printsol(sol);
    }
    else
    printf("queen not placed");
}
bool cycle(bool graph[V][V])
{
	int *path=(int*)malloc(V*sizeof(int));
	//int path[V];
	int i;
	for(i=1;i<V;i++)
	{
		path[i]=-1;
	}
	path[0]=0;
	if(cycle_util(graph,1,path)==0)
	{
		printf("sol doesnt exit");
		return 0;
	}

printsol(path);

	return 1;

}