【POJ1426】Find The Multiple
时间:2019-09-21
本文章向大家介绍【POJ1426】Find The Multiple,主要包括【POJ1426】Find The Multiple使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本题知识点:深度优先搜索 | 宽度优先搜索
题意很简单,让我们找一个只有1和0组成的十位数是n的倍数的数。
这题一开始吓到我了——因为Output里说输出的长度最长不超过100位???那是不是要用字符串了?不过貌似在[1, 200]里,他们的倍数好像都在18位内,即用unsigned long long就可以解决。(BUG?)
若想学习输出100位的可以看看这篇博客
数据很小。
// POJ 1426
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
int n, m;
bool take;
struct node{
unsigned long long num;
int len;
};
queue<node> que;
void dfs(unsigned long long ans, int t){
if(take) return ;
if(ans % n == 0){
printf("%llu\n", ans);
take = true;
return ;
}
if(t == 19) return ;
dfs(ans * 10, t + 1);
dfs(ans * 10 + 1, t + 1);
}
void bfs(){
node a; a.num = 1; a.len = 0;
que.push(a);
while(!que.empty()){
node now = que.front(), next; que.pop();
if(now.num % n == 0){
printf("%llu\n", now.num);
break;
}
if(now.len == 19) continue;
else {
next.num = now.num * 10; next.len = now.len + 1;
que.push(next);
next.num++;
que.push(next);
}
}
}
int main()
{
while(~scanf("%d", &n) && n){
while(!que.empty()) que.pop();
take = false;
// dfs(1, 0);
bfs();
}
// freopen("Find The Multiple.txt", "w", stdout);
// for(n = 1; n <= 200; n++){
// take = false;
// dfs(1, 0);
// }
return 0;
}
原文地址:https://www.cnblogs.com/Ayanowww/p/11561450.html
- Pandas对行情数据的预处理
- 上市公司*ST华泽官网打不开,域名已被挂出售卖
- Asp.Net4.0/VS2010新变化(4):SEO的改进
- Pandas DataFrame笔记
- 让控件填满整个页面
- 用多个类别来进行微调
- Asp.Net4.0/VS2010新变化(2):网站自动预热
- Asp.Net4.0/VS2010新变化(1):web.config与publish
- 任天堂将推出Nintendo Labo 域名保护意识墙
- 表格效果
- ROR学习笔记(2):Asp.Net开发者看ROR
- 图片的javascript延时加载
- 全世界最短IE判定if(!+[1,])的解释
- Log4Net与Log2Console配合时中文问题的解决
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【剑指Offer】表示数值的字符串
- JetBrains 集成开发环境常用插件-快捷键-内存优化
- Hugo Travis
- hugo-站点变量
- hugo-页面变量
- 将hexo文章头转为hugo格式
- python 技术篇-使用pytesseract库进行图像识别之环境配置
- Linux 安装PicGo问题
- 【剑指Offer】对称的二叉树
- deepin下状态栏无法显示问题
- 【剑指Offer】二叉树的镜像
- Python实战之利用数据字典实现井字棋盘,
- scRNA-seq Clustering quality control
- Python实战之tkinter库画图,用canver画布教你画卡通人物!
- Python教程之正则表达式(基础篇)