zoukankan      html  css  js  c++  java
  • P1242 新汉诺塔(hanio)

    这道题加深了hanio的理解

    如果我们要移动第n个盘子。那么就是说,n+1以后(包括n+1)的盘子都已经到位了


    #include<iostream> 
    #include<cstdio>
    using namespace std;
    int no[4];
    int ai[4];
    int aim[50];
    int pla[50];
    long long ans;
    void move(int num,int f,int t)
    {
    	ans+=1;
    	printf("move %d from %c to %c
    ",num,f+'A'-1,t+'A'-1);
    	pla[num]=t;
    	return ;
    }
    void dfs(int num,int from,int to,int pass)
    {
    	if(from==to)
    		return ;
    	for(int i=num-1;i>=1;i--)
    		dfs(i,pla[i],pass,6-pla[i]-pass);
    	move(num,from,to);
    	return ;
    }
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int pass;
    	for(int i=1;i<=3;i++)
    	{
    		scanf("%d",&no[i]);
    		for(int j=1;j<=no[i];j++)
    		{
    			scanf("%d",&pass);
    			pla[pass]=i;
    		}
    	}
    	for(int i=1;i<=3;i++)
    	{
    		scanf("%d",&ai[i]);
    		for(int j=1;j<=ai[i];j++)
    		{
    			scanf("%d",&pass);
    			aim[pass]=i;
    		} 
    	}
    	for(int i=n;i>=1;i--)
    		dfs(i,pla[i],aim[i],6-pla[i]-aim[i]);
    	printf("%lld",ans);
    	return 0;
    }
    
  • 相关阅读:
    Light OJ 1067 Combinations (乘法逆元)
    hdu1172猜数字(暴力枚举)
    hdu 2266 How Many Equations Can You Find(DFS)
    项目之问卷调查问题
    Django之Modelform组件
    GIT
    form组件的总结
    总结django知识点
    djang-分页
    Django-Ajax
  • 原文地址:https://www.cnblogs.com/Lance1ot/p/8612539.html
Copyright © 2011-2022 走看看