首页 > 学院 > 开发设计 > 正文

POJ 1426 Find The Multiple 【BFS】

2019-11-08 03:24:08
字体:
来源:转载
供稿:网友

题目链接:http://poj.org/PRoblem?id=1426 题意:给你一个n,让你找一个可以整除n的数,这个数只有0和1构成 解析:由于这个数很特殊,所以可以构造出来,用bfs从1开始,每步只能x*10或者x*10+1

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>using namespace std;typedef long long ll;const int maxn = 1e6+100;int n;long long bfs(){ queue<long long>q; q.push(1LL); while(!q.empty()) { long long now = q.front(); q.pop(); if(now%n==0) return now; q.push(now*10LL); q.push(now*10LL+1LL); } return 0;}int main(){ while(~scanf("%d",&n)&&n) printf("%I64d/n",bfs()); return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表