zoukankan      html  css  js  c++  java
  • bzoj1054: [HAOI2008]移动玩具

    我只希望今年HAOI有这样的题目...爆搜即可

    #include<bits/stdc++.h>
    using namespace std;
    int a[6][6],b[6][6],ans=9999999,len1=0,len2=0;
    bool f[20];
    struct one
    {
    	int x,y;
    };
    one e1[30],e2[30];
    void dfs(int p,int sum)
    {
    	if(p>len1){ans=min(ans,sum);return;}
    	for(int i=1;i<=len1;i++)
    	{
    		if(f[i])continue;
    		f[i]=true;
    		sum+=abs(e1[p].x-e2[i].x)+abs(e1[p].y-e2[i].y);
    		dfs(p+1,sum);
    		f[i]=false;
    		sum-=abs(e1[p].x-e2[i].x)+abs(e1[p].y-e2[i].y);
    	}
    }
    int main()
    {
    	for(int i=1;i<=4;i++)
    		for(int j=1;j<=4;j++)
    		{
    			char ch;cin>>ch;
    			if(ch=='1')a[i][j]=1;
    		}
    	for(int i=1;i<=4;i++)
    		for(int j=1;j<=4;j++)
    		{
    			char ch;cin>>ch;
    			if(ch=='1')b[i][j]=1;
    			if(b[i][j]==1&&a[i][j]==1)
    			{
    				a[i][j]=0;b[i][j]=0;
    			}
    		}
    	for(int i=1;i<=4;i++)
    	{
    		for(int j=1;j<=4;j++)
    		{
    			if(a[i][j])
    			{
    				e1[++len1].x=i;
    				e1[len1].y=j;
    			}
    			if(b[i][j])
    			{
    				e2[++len2].x=i;
    				e2[len2].y=j;
    			}
    		}
    	}
    	dfs(1,0);
    	printf("%d
    ",ans);
    	return 0;
    }
    

      

  • 相关阅读:
    第五次团队作业
    第三次个人作业
    第一次编程作业
    自我介绍
    个人总结
    第三次个人作业
    第一次结对作业
    第二次作业
    第一次博客作业
    Alpha总结
  • 原文地址:https://www.cnblogs.com/mybing/p/8385214.html
Copyright © 2011-2022 走看看