UVa 10624 - Super Number
2015-03-14 19:25
309 查看
题目大意
给定两个数n和m,如果长度为m的数满足对于每个i(n<=i<=m),数字的前i位都能被i整除,那么这个数就是超级数,求出字典序最小的符合要求的超级数。
分析
直接暴力搜索
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int str[50];
int n,m,flag;
int judge(int cur)
{
int sum=0;
for(int i=0; i<cur; i++)
sum=(sum*10+str[i])%cur;
return sum;
}
void dfs(int cur)
{
if(flag==1)
return ;
if(cur==m)
{
flag=1;
return ;
}
for(int i=0; i<=9; i++)
{
str[cur]=i;
if((cur<n-1)||!judge(cur+1))
{
dfs(cur+1);
}
if(flag==1)
return ;
}
}
int main()
{
int t;
scanf("%d",&t);
for(int ii=1; ii<=t; ii++)
{
scanf("%d %d",&n,&m);
flag=0;
for(int i=1; i<=9; i++)
{
str[0]=i;
dfs(1);
if(flag==1)
{
printf("Case %d: ",ii);
for(int i=0; i<m; i++)
printf("%d",str[i]);
printf("\n");
break;
}
}
if(flag==0)
printf("Case %d: -1\n",ii);
}
return 0;
}
给定两个数n和m,如果长度为m的数满足对于每个i(n<=i<=m),数字的前i位都能被i整除,那么这个数就是超级数,求出字典序最小的符合要求的超级数。
分析
直接暴力搜索
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int str[50];
int n,m,flag;
int judge(int cur)
{
int sum=0;
for(int i=0; i<cur; i++)
sum=(sum*10+str[i])%cur;
return sum;
}
void dfs(int cur)
{
if(flag==1)
return ;
if(cur==m)
{
flag=1;
return ;
}
for(int i=0; i<=9; i++)
{
str[cur]=i;
if((cur<n-1)||!judge(cur+1))
{
dfs(cur+1);
}
if(flag==1)
return ;
}
}
int main()
{
int t;
scanf("%d",&t);
for(int ii=1; ii<=t; ii++)
{
scanf("%d %d",&n,&m);
flag=0;
for(int i=1; i<=9; i++)
{
str[0]=i;
dfs(1);
if(flag==1)
{
printf("Case %d: ",ii);
for(int i=0; i<m; i++)
printf("%d",str[i]);
printf("\n");
break;
}
}
if(flag==0)
printf("Case %d: -1\n",ii);
}
return 0;
}
相关文章推荐
- UVA - 10624 Super Number(回溯)
- UVA - 10624 Super Number 暴力
- UVA10624 - Super Number(dfs)
- UVA 10624 Super Number
- UVA 10624 Super Number
- UVa10624 - Super Number
- UVA - 10624 Super Number
- uva10624 Super Number
- UVA 10624 - Super Number
- uva 10624 Super Number 险险的过了。。。
- UVa 10624 - Super Number, Rujia Liu的神题(四)
- UVA 10624 - Super Number(DFS)
- uva 10642 Super Number(dfs)
- 10624 - Super Number
- The Super Powers UVA 11752 分析分析 求无符号长整形以内的数满足至少可以用两种不同的次方来表示。比如64 = 2^6 = 8^2; 一个数的1次方不算数。
- UVA11752 The Super Powers
- UVA - 10269 Adventure of Super Mario spfa+floyd
- UVa 11752 - The Super Powers (数论)
- UVA10689-Yet another Number Sequence
- 313. Super Ugly Number