题目链接: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;}新闻热点
疑难解答