zoukankan      html  css  js  c++  java
  • uva 167 The Sultan's Successors

    八皇后问题变形,参考算法竞赛入门P191页。

    能过uva,过不了hdu……

    想想是不是还要第一次就走最大的那个格子……

    #include "stdio.h"
    #include"string.h"
    //v保存每个格子价格,sum最后答案,vis0表示当前行,vis1表示i+j对角线,vis2表示j-i对角线
    int v[10][10],sum,vis[2][25];
    
    void dfs(int cur,int ans)
    {
    	if(cur==8)
    	{
    		if(ans>sum) sum=ans;
    		return ;
    	}
    	int i,j;
    	for(i=0;i<8;i++)
    	{
    		if(!vis[0][i]&&!vis[1][cur+i]&&!vis[2][cur-i+8])//可以放置
    		{
    			vis[0][i]=vis[1][cur+i]=vis[2][cur-i+8]=1;
    			dfs(cur+1,ans+v[cur][i]);
    			vis[0][i]=vis[1][cur+i]=vis[2][cur-i+8]=0;
    
    		}
    	}
    
    }
    int main()
    {
    	int cas,i,j;
    	scanf("%d",&cas);
    	while(cas--)
    	{
    		sum=0;
    		memset(vis,0,sizeof(vis));
    		for(i=0;i<8;i++)
    			for(j=0;j<8;j++)
    				scanf("%d",&v[i][j]);
    		dfs(0,0);
    		printf("%5d
    ",sum);
    	}
    	return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    RramSim2
    DiskSim
    FTL2
    Durable NAND flash memory management
    node系列:全局与本地
    CSS系列:less备忘
    Sql Server 2008:调试
    JavaScript系列:再巩固-原型链
    移动端 :meta标签1万个作用
    Asp.Net:Repeater 详情 备用
  • 原文地址:https://www.cnblogs.com/xryz/p/4848112.html
Copyright © 2011-2022 走看看