首页 > 其他 > 详细

pojj2531

时间:2017-04-28 15:05:50      阅读:301      评论:0      收藏:0      [点我收藏+]
#include<iostream>
using namespace std;
int n;
int map[21][21];
int c1[21],c2[21];
int count1,count2;
int maxsum;

void dfs(int step,int count1, int count2)
{
    if(step==n)
    {
        int sum=0;
        for(int i=0;i<count1;i++)
        {
            for(int j=0;j<count2;j++)
            {
                sum=sum+map[c1[i]][c2[j]];
                if(sum>maxsum)
                    maxsum=sum;
            }
        }
        return;
    }
    int temp1=count1;
    c1[temp1]=step;
    dfs(step+1,count1+1,count2);
    c1[temp1]=0;

    int temp2=count2;
    c2[temp2]=step;
    dfs(step+1,count1,count2+1);
    c2[temp2]=0;
}

int main()
{
    //freopen("input.txt","r",stdin);
    cin>>n;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>>map[i][j];
    for(int i=0;i<n;i++)
    {
        c1[i]=-1;
        c2[i]=-1;
    }
    maxsum=0;
    dfs(0,0, 0);
    cout<<maxsum;
    return 0;
}

 

pojj2531

原文:http://www.cnblogs.com/bbcai/p/6781442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!