您的位置:首页 > 其它

ZOJ 1530 构造一个只由01构成的整数,并且可以整除n

2011-05-17 20:52 246 查看
题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=530

我的方法是直接利用BFS暴力搜索

我的代码:

Source
Problem Id:1690 User Id:bingshen
Memory:4276K Time:953MS
Language:G++ Result:Accepted

Source

#include<stdio.h>
#include<queue>
#include<algorithm>

using namespace std;

__int64 ans[300];
bool used[300];

void init()
{
__int64 now,i,num=0;
memset(used,0,sizeof(used));
queue<__int64>q;
q.push(1);
while(!q.empty())
{
now=q.front();
q.pop();
for(i=1;i<=200;i++)
{
if(!used[i]&&now%i==0)
{
ans[i]=now;
used[i]=true;
num++;
}
}
if(num==200)
break;
now=now*10;
q.push(now);
now=now+1;
q.push(now);
}
}

int main()
{
__int64 n;
init();
while(scanf("%I64d",&n)!=EOF)
{
if(n==0)
break;
printf("%I64d/n",ans
);
}
return 0;
}


不过还好953MS卡过去了。。但是如果过不了的话,可以直接利用刚刚的程序打一个表出来,因为反正n不大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐