寒假前刷题(5)搜索系列 bfs poj 1426
2012-12-10 22:15
330 查看
Find The Multiple
Description
Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing
no more than 100 decimal digits.
Input
The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.
Output
For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them
is acceptable.
Sample Input
Sample Output
Time Limit: 1000MS | Memory Limit: 10000K | |||
Total Submissions: 13192 | Accepted: 5389 | Special Judge |
Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing
no more than 100 decimal digits.
Input
The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.
Output
For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them
is acceptable.
Sample Input
2 6 19 0
Sample Output
10 100100100100100100 111111111111111111
这是一道非常简单的bfs题目,其实如果不是放在搜索这一类里,我都不敢相信这是一道搜索的题目,首先题目所给的数据非常之大,所以如果想要用暴力去解题的话,肯定会超,所以可以用bfs,将其建成一颗树的样子,如下图:
然后按照层次去遍历他,一旦符合条件即可输出
我的这个程序是用数组来代替队列模拟的,写的比较挫,大牛请绕道
代码如下:
#include<stdio.h> #include<stdlib.h> long long q[9999999]; int n;int bfs() { int front,rear; long long top; front=rear=0; q[rear]=1; rear++; while(rear>front) { top=q[front]; if(top%n==0) break; top*=10; front++; q[rear++]=top; q[rear++]=top+1; } printf("%lld\n",top); }int main() { while(scanf("%ld",&n)&&n) { bfs(); } return 0; }
相关文章推荐
- 寒假前刷题(10)搜索系列 hdu 1242
- 寒假前刷题(7)搜索系列 dfs hdu 1010
- 寒假前刷题(8)搜索系列 dfs hdu 1241
- 寒假前刷题(9)搜索系列 bfs hdu 1312
- 寒假前刷题(2)kmp系列 hdu1711题
- 寒假第五天--递推递归--不容易系列之(3)—— LELE的RPG难题
- Lucene系列 - 索引(六) - 创建本地搜索的索引
- 搜索系列——1321 棋盘问题
- (搜索)跳棋系列3
- 【Lucene3.6.2入门系列】第03节_简述Lucene中常见的搜索功能
- 【Lucene3.6.2入门系列】第07节_高级搜索之普通Filter和自定义Filter
- SharePoint 2010 文档管理系列(二)文档搜索
- MSDN Visual系列:MOSS企业级搜索之一——在搜索中心里创建自定义搜索页面和标签选项卡
- Lucene系列:(8)搜索结果摘要
- MSDN Visual系列:使用范围细化业务数据目录的搜索
- poj 1426 Find The Multiple +kuangbin搜索E
- POJ 1426 Find the Multiple 思路,线性同余,搜索 难度:2
- 【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录
- [kuangbin带你飞]专题一 简单搜索E - Find The Multiple(POJ 1426)
- 天下会 - 搜索实战系列之视频