POJ-1426 Find The Multiple

本文探讨了一个关于寻找特定01字符串的问题,该字符串能够被给定的整数整除。通过深度和广度优先搜索的方法尝试解决此问题,但最终采用了一种预计算表格的方法来简化求解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <cstdio>
#include <cstring> 
#include <algorithm>
#include <cmath>
#include <string> 
#include <climits>
#include <queue>
typedef long long ll;
using namespace std;
const int INF = 0x3f3f3f3f;
const double PI = 3.14159265;
const double E = 2.718281828459;
const double EPS=1e-8;

const int M = 3e+5;
int n;
char str[205][25] = {"1","10","111","100","10","1110","1001","1000","111111111","100","11","11100","1001","10010","1110","10000","11101","1111111110","11001","1000","10101","110","110101","111000","100","10010","1101111111","100100","1101101","11100","111011","100000","111111","111010","10010","11111111100","111","110010","10101","10000","11111","101010","1101101","1100","1111111110","1101010","10011","1110000","1100001","1000","100011","100100","100011","11011111110","110","1001000","11001","11011010","11011111","111000","100101","1110110","1111011111","1000000","10010","1111110","1101011","1110100","10000101","100100","10011","111111111000","10001","1110","11100","1100100","1001","101010","10010011","100000","1111111101","111110","101011","1010100","111010","11011010","11010111","11000","11010101","11111111100","1001","11010100","10000011","100110","110010","11100000","11100001","11000010","111111111111111111","10000","101","1000110","11100001","1001000","101010","1000110","100010011","110111111100","1001010111","1100","111","10010000","1011011","110010","1101010","110110100","10101111111","110111110","100111011","1110000","11011","1001010","10001100111","11101100","1000","11110111110","11010011","10000000","100100001","100100","101001","11111100","11101111","11010110","11011111110","11101000","10001","100001010","110110101","1001000","10011","100110","1001","1111111110000","11011010","100010","1100001","11100","110111","111000","1110001","11001000","10111110111","10010","1110110","1010100","10101101011","100100110","100011","1000000","11101111","11111111010","1010111","1111100","1111110","1010110","11111011","10101000","10111101","1110100","1111011111","110110100","1011001101","110101110","100100","110000","100101111","110101010","11010111","111111111000","1001111","10010","100101","110101000","1110","100000110","1001011","1001100","1010111010111","1100100","11101111","111000000","11001","111000010","101010","110000100","1101000101","1111111111111111110","111000011","100000"};
int main()  {
    #ifdef ONLINE_JUDGE
    #else
        freopen( "in.txt", "r", stdin );
    #endif
    while( ~scanf("%d", &n ) && n ) {
        printf("%s\n", str[n-1] );
    }
    return 0;
}

题意:就是给个数。之后找一个01组成的数可以被这个数整除。

题解:dfs不行(当然用long long就随意了) bfs 第一次超时 第二次超内存 就这样 人生绝望。 无所谓 打表玩了。用bfs的结果打的表。做人嘛 开心就好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值