zoukankan      html  css  js  c++  java
  • Uva 12009 平方数尾数与自身同样 dfs 构造

    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/qq574857122/article/details/25166611

    题目链接:点击打开链接

    题意:rt

    思路:从最低位開始构造,若x位的平方数是自身则继续构造。

    mark:

    #pragma comment(linker, "/STACK:1024000000,1024000000")  
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<algorithm>
    #include<set>
    #include<string>
    #include<ctime>
    using namespace std;
    #define N 555
    int n;
    int a[N];
    vector<string>ans[N];
    void dfs(int pos,int *s)
    {
    	int i,j;
    	if(pos==n)
    	{
    		string tmp="";
    		for(i=n-1;i>=0;i--)
    		{
    			tmp+=(char)(a[i]+'0');
    		}
    		ans[n].push_back(tmp);
    		return;
    	}
    	int c[N];
    	for(i=0;i<=9;i++)
    	{
    		if(pos==n-1&&i==0)continue;
    		if(pos==0&&(i!=0&&i!=5&&i!=6))continue;
    		int g = a[0]*i*2+s[pos];
    		if(pos==0)g-=a[0]*i;
    		if(pos==0||(pos>0&&g%10==i))
    		{
    			int M = min(n,500);
    			for(j=0;j<=M;j++)
    				c[j]=s[j];
    			a[pos]=i;
    			int k=0;
    			for(j=pos;j<=n;j++)
    			{
    				int tmp = a[k]*i+c[j];
    				if(pos>0&&k<=pos-1)tmp+=a[k]*i;
    				c[j]=tmp%10;
    				c[j+1]+=tmp/10;
    				k++;
    			}
    			dfs(pos+1,c);
    			a[pos]=0;
    		}
    	}
    }
    int b[N];
    int main()
    {
    	int i,j,t;
    	for(i=1;i<=500;i++)
    		ans[i].clear();
    	memset(b,0,sizeof(b));
    	for(i=1;i<=500;i++)
    	{
    
    		n=i;
    		dfs(0,b);
    		sort(ans[i].begin(),ans[i].end());
    	}
    	scanf("%d",&t);
    	int cas=0;
    	while(t--)
    	{
    		scanf("%d",&n);
    		printf("Case #%d:",++cas);
    		if(n==1)printf(" 0 1");
    		if(n!=1&&ans[n].size()==0)
    		{
    			printf("Impossible");
    		}
    		for(i=0;i<ans[n].size();i++)
    		{
    			cout<<" "<<ans[n][i];
    		}
    		puts("");
    	}
    	return 0;
    }


查看全文
  • 相关阅读:
    iview table的render()函数基本的用法
    【整理】iview Tree数据格式问题,无限递归树处理数据
    【整理】用JSON-server模拟REST API
    【整理】解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function
    【整理】 vue-cli 打包后显示favicon.ico小图标
    【整理】treeGrid 树形表格
    【整理】iview中刷新页面的时候更新导航菜单的active-name
    [整理] webpack+vuecli打包生成资源相对引用路径与背景图片的正确引用
    在.vue文件中让html代码自动补全的方法(支持vscode)
    解决VSCode中使用vetur插件格式化vue文件时,js代码会自动加上冒号和分号
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10788386.html
  • Copyright © 2011-2022 走看看