【POJ1426】Find The Multiple

时间:2021-09-05 14:25:42

本题传送门

本题知识点:深度优先搜索 | 宽度优先搜索

题意很简单,让我们找一个只有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;
}

【POJ1426】Find The Multiple的更多相关文章

  1. 【Atcoder】ARC084 Small Multiple

    [题意]求一个k的倍数使其数位和最小,输出数位和,k<=10^5. [算法]最短路 [题解]考虑极端情况数字是可能爆long long的(例如k*num=100...000),所以确定基本方向是 ...

  2. 【搜索】 Find The Multiple

    #include<stdio.h> #include<stdlib.h> #include<string.h> bool found; void DFS(unsig ...

  3. 【LeetCode】158&period; Read N Characters Given Read4 II - Call multiple times

    Difficulty: Hard  More:[目录]LeetCode Java实现 Description Similar to Question [Read N Characters Given ...

  4. 【原】Coursera—Andrew Ng机器学习—Week 2 习题—Linear Regression with Multiple Variables 多变量线性回归

    Gradient Descent for Multiple Variables [1]多变量线性模型  代价函数 Answer:AB [2]Feature Scaling 特征缩放 Answer:D ...

  5. Least Common Multiple &lpar;HDU - 1019&rpar; 【简单数论】【LCM】【欧几里得辗转相除法】

    Least Common Multiple (HDU - 1019) [简单数论][LCM][欧几里得辗转相除法] 标签: 入门讲座题解 数论 题目描述 The least common multip ...

  6. Error:【SLF4J&colon; Class path contains multiple SLF4J bindings&period;】

    ylbtech-Error:[SLF4J: Class path contains multiple SLF4J bindings.] 1.返回顶部 1. SLF4J: Class path cont ...

  7. 【原】实时渲染中常用的几种Rendering Path

    [原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...

  8. 【原创】开源Math&period;NET基础数学类库使用&lpar;09&rpar;相关数论函数使用

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  9. 【原创】开源Math&period;NET基础数学类库使用&lpar;13&rpar;C&num;实现其他随机数生成器

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

随机推荐

  1. php一些技巧函数

    current() next() prev() 范例 <?php $people = array("Peter", "Joe", "Glenn& ...

  2. Docker Centos安装Openssh

    环境介绍: Docker版本:1.5.0 镜像:docker.io:centos latest 操作步骤: 1.启动镜像 docker run -ti centos /bin/bash 2.安装pas ...

  3. C&num; 平时碰见的问题【4】

    1. 模糊查询 like的参数化写法 string keyword="value"; // 要模糊匹配的值 错误示范:   sql:    string strSql=" ...

  4. Html table 实现Excel多格粘贴

    Html table 实现Excel多格粘贴 电商网站的后台总少不了各种繁杂数据的录入,旁边的运营妹子录完第138条商品的时候,终于忍不住转身吼到:为什么后台的录入表不能像Excel那样多行粘贴!!! ...

  5. vim ctl&plus;v批量添加&sol;删除

    vim编辑器---批量注释与反注释 在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码.下面简要介绍其操作. 方法一 块选择模式 插入注释: 用v进入virtual模式 用上下键选中需要 ...

  6. volatile解析(转)

    Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 ...

  7. Servlet过滤器简单探索

    过滤器的工作时机介于浏览器和Servlet请求处理之间,可以拦截浏览器对Servlet的请求,也可以改变Servlet对浏览器的响应. 其工作模式大概是这样的: 一.Filter的原理 在Servle ...

  8. iOS -- Effective Objective-C 阅读笔记 &lpar;4&rpar;

    1: 在 对象内部 尽量 直接访问 实例变量 在对象之外访问实例变量时, 总是应该通过属性来访问, 然而在对象内部, 在读取实例变量的时候尽量采用 直接访问的形式, 而在设置实例变量的时候通过属性来做 ...

  9. Nginx部署多个网站

    为节省资源,通常一个服务器会运行多个网站,通常一个服务一个IP,多个域名共用一个IP,多个域名共用一个端口(通常是80端口). 这时候需要一台服务器部署多个网站,多个网站共用一个IP,共用一个80端口 ...

  10. ambari HDFS-HA 回滚

    curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://zwshen86:8080/api/v1/cluster ...