⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yingb.cpp

📁 把硬币摆放成32×9的矩阵
💻 CPP
字号:
/*

把硬币摆放成32×9的矩阵,你可以随意翻转矩阵中的某些行和某些列,问正面朝上的硬币最多有多少枚?
提示:(1)任意一行或一列,翻两次等于没有翻;
(2)对于9列的任何一种翻转的情况,每一行翻与不翻相互独立。
*/
#include <stdio.h>
/*
#define WALL -2
#define FORT 1
*/
int row,col;//
int a[32][9]={-1};
int b[32][9];//放置最优方案
int currentnum=0;
int bestnum=0;
//
void readdata(){//
	a[1][4]=1;
	a[10][2]=1;
	a[12][4]=1;
	a[3][7]=1;	
	a[24][6]=1;
	a[17][6]=1;
	a[13][2]=1;
	a[19][1]=1;
	a[23][7]=1;	
a[29][6]=1;
a[31][8]=1;
}

int reversecol(int m)
{
	for(int i=0;i<32;i++){
		a[m][i]*=-1;
	}
}
int reverserow(int m){

	for(int i=0;i<9;i++){
		a[i][m]*=-1;
	}
}
void checkmax(){//
	for(int i=0;i<32;i++){


	}
	if(bestnum<currentnum){
		bestnum=currentnum;
	for(int i=0;i<15;i++){
		b[i]=a[i];
	}}
}


void search(int m){//
	
	if(m>8)
		checkmax();
	else{
			reversecol(m);
			search(m+1);
			reversecol(m);
		}
		search(m+1);
	}	
}

void printresult()
{
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			printf("%d ",b[i*4+j]);
		}
		printf("\n");}
}


void main(){
	readdata();
	search(0);
	printresult();
	
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -