POJ 1426 Find The Multiple (DFS / BFS)
题目链接: id=1426">Find The Multiple
解析:直接从前往后搜。设当前数为k用long long保存,则下一个数不是k*10就是k*10+1
AC代码:
/*
DFS
*/
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std; long long n;
int DEEP;
bool flag; void dfs(long long k, int deep){
if(flag) return ;
if(deep >= DEEP) return ; //。! !
if(k % n == 0){
flag = true;
printf("%lld\n", k);
return ;
}
dfs(k*10, deep+1);
dfs(k*10+1, deep+1);
} int main(){
// freopen("in.txt", "r", stdin);
while(scanf("%lld", &n) == 1 && n){
flag = false;
for(DEEP=1; ; DEEP++){ //! 。!
if(flag) break;
dfs(1, 0);
}
}
return 0;
}
个人感觉这样的DFS的方式。事实上还是在模拟BFS。用DEEP控制搜索的深度,当第一层搜不到的时候,DEEP++,继续搜第二层。。
。。直到找到结果。
BFS还是非常好懂得~
/*
BFS
*/
#include <cstdio>
#include <queue>
using namespace std; long long n; void bfs(long long k, long long n){
queue<long long> q;
q.push(k);
while(!q.empty()){
long long x = q.front(); q.pop();
if(x % n == 0){
printf("%lld\n", x);
return ;
}
q.push(x*10);
q.push(x*10+1);
}
return ;
} int main(){
// freopen("in.txt", "r", stdin);
while(scanf("%lld", &n) == 1 && n){
bfs(1, n);
}
return 0;
}
可是还是有个疑点,为什么就能确定在long long的范围内一定能找到解呢???有待考证
POJ 1426 Find The Multiple (DFS / BFS)的更多相关文章
- POJ 1426 Find The Multiple(寻找倍数)
POJ 1426 Find The Multiple(寻找倍数) Time Limit: 1000MS Memory Limit: 65536K Description - 题目描述 Given ...
- POJ - 1426 Find The Multiple(搜索+数论)
转载自:優YoU http://user.qzone.qq.com/289065406/blog/1303946967 以下内容属于以上这位dalao http://poj.org/problem? ...
- POJ 1426 Find The Multiple (dfs??!!)
Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose ...
- POJ.1426 Find The Multiple (BFS)
POJ.1426 Find The Multiple (BFS) 题意分析 给出一个数字n,求出一个由01组成的十进制数,并且是n的倍数. 思路就是从1开始,枚举下一位,因为下一位只能是0或1,故这个 ...
- POJ 3083 -- Children of the Candy Corn(DFS+BFS)TLE
POJ 3083 -- Children of the Candy Corn(DFS+BFS) 题意: 给定一个迷宫,S是起点,E是终点,#是墙不可走,.可以走 1)先输出左转优先时,从S到E的步数 ...
- poj 1426 Find The Multiple( bfs )
题目:http://poj.org/problem?id=1426 题意:输入一个数,输出这个数的整数 倍,且只有0和1组成 程序里写错了一个数,结果一直MLE.…… #include <ios ...
- 第三次组队赛 (DFS&BFS)
网站:CSUST 8月1日 先总结下,不得不说死的很惨,又是第三就不说了,一共7道题,AC了5道,但是有一个组三个人是做的个人赛,有两人AK了.......Orz,然后深搜还是大问题,宽搜倒是不急了. ...
- Leetcode之深度+广度优先搜索(DFS+BFS)专题-934. 最短的桥(Shortest Bridge)
Leetcode之广度优先搜索(BFS)专题-934. 最短的桥(Shortest Bridge) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary ...
- [LeetCode]695. 岛屿的最大面积(DFS/BFS)、200. 岛屿数量(DFS/BFS待做/并差集待做)
695. 岛屿的最大面积 题目 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二维矩阵的四个边缘都被 ...
随机推荐
- 四 过滤模式 map Only - 作业完成 bloomFilter、top10、去重
第四部分所有的模式涉及一个共同点: 不会改变原有的记录. 这些模式都是寻找数据子集的,不管结果集的规模是小(top10)还是大(像去重结果). 与第三部分差异是,他们通过对数据的相思子端坐概要与分组来 ...
- js 阻断网页选中和右键
$(document).bind("contextmenu", function () { return false; }); $(document).bind("sel ...
- Android中System.currentTimeMillis()
函数: System.currentTimeMillis(): 功能:产生一个当前的毫秒,这个毫秒事实上就是自1970年1月1日0时起的毫秒数,Date()事实上就是相当于Date(System.cu ...
- vue2.0 vue-loader
vue-cli npm install 脚手架: vue-loader 1.0 -> new Vue({ el: '#app', components:{App} }) 2.0-> new ...
- xml Data Type Methods in sql server
nodes() Method (xml Data Type) https://docs.microsoft.com/en-us/sql/t-sql/xml/nodes-method-xml-data- ...
- Whats the difference between git reset --mixed, --soft, and --hard?
https://stackoverflow.com/questions/3528245/whats-the-difference-between-git-reset-mixed-soft-and-ha ...
- pip报错
You are using pip version 9.0.1, however version 10.0.1 is available.You should consider upgrading v ...
- 99.重载[] * -> ->*
#include "mainwindow.h" #include <QApplication> #include <QPushButton>> //重 ...
- Gym - 100637B Lunch 规律
题意:n个点,给定起点和终点,可以每次可以走一格或两格,走一格则需要一个代价,每个格子只能走一次,问从起点到终点并经过每一个点的最小代价 思路:这题我没看出什么道理,先打了个暴力,结果发现了个相当坑的 ...
- 一张图了解javaJwt
1.什么是javaJwt? JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims ...