seaicelin的博客

坚持吧,少年!用心做好每件事~

2531

#include<iostream>

using namespace std;

const int SIZE = 21;

int QA[SIZE] = {0};
int QB[SIZE] = {0};
int map[SIZE][SIZE] = {0};
int N = 0;
int tem = 0;
int sum = 0;

void dfs(int a, int b, int step);

int main()
{
	freopen("input.txt", "r", stdin);
	setbuf(stdout, NULL);

	cin >> N;

	for(int i = 1; i <= N; i++)
	{
		for(int j = 1; j <= N; j++)
		{
			cin >> map[i][j];
		}
	}

	QA[0] = 1;
	
	dfs(1, 0, 1);

	cout << sum << endl;
	return 0;
}

void dfs(int a, int b, int step)
{
	if(step == N)
	{
		tem = 0;
		for(int i = 0; i < a; i++)
		{
			for(int j = 0; j < b; j++)
			{
				tem += map[QA[i]][QB[j]];
			}
		}
		if(tem > sum)
		{
			sum = tem;
		}
		return;
	}

	step++;

	QA[a] = step;
	dfs(a+1, b, step);

	QB[b] = step;
	dfs(a, b+1, step);
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/amd123456789/article/details/46799441
个人分类: 算法入门学习
上一篇1328
下一篇[2015年7月][6~10][解bug,算法学习]
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭