题意:给出n,c,m,密码必须是n这个十进制数的整数倍,c代表这个密码是C进制数,m代表这个密码只有m种字符构成,而且密码不能长于500
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <cmath>
#define N 20
using namespace std;

struct Node
{
    int s[505];
    int len;
};
int num[20];
int vis[5005];
int n,c,m,t;
/**由于数可能会很大,所以取余*/
int mod(Node nd)
{
    int tp = 0;
    for(int i = 0;i < nd.len;i++)
    {
        //c为进制
        tp = (tp*c+nd.s[i])%n;
    }
    return tp;
}
//打印结果
void mprintf(Node nd)
{
    for(int i = 0;i < nd.len;i++)
    {
        if(nd.s[i] > 9)
            printf("%c", nd.s[i]+'A'-10);
        else printf("%d", nd.s[i]);
    }
    printf("\n");
}
int bfs()
{

Node nd;

nd.len = 0;
    queue<Node> Q;

//数的第一位不能为零,所以从一开始
    for(int i = 1;i < 16;i++)
    {
        if(num[i])
        {
            nd.s[0] = i;
            nd.len = 1;
            int r = mod(nd);//求余
            if(r == 0)//表示整除
            {
                mprintf(nd);
                return 1;
            }
            else
            {
                if(!vis[r])//检查该余数之前是否出现过,若没有出现过,加到队列
                {
                    vis[r] = 1;
                    Q.push(nd);
                }
            }
        }
    }
    while(!Q.empty())
    {
        nd = Q.front();
        Q.pop();
        for(int i = 0;i < 16;i++)
        {
            if(num[i])
            {
                nd.s[nd.len] = i;
                nd.len++;
                int r = mod(nd);
                if(r == 0)
                {
                    mprintf(nd);
                    return 1;
                }
                else
                {
                    if(!vis[r] && nd.len < 500)
                    {
                        vis[r] = 1;
                        Q.push(nd);
                    }
                }
                nd.len--;
            }
        }
    }
    return 0;
}
int main()
{
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d%d", &n, &c, &m);
        memset(num, 0, sizeof(num));
        memset(vis, 0, sizeof(vis));
        for(int i = 0;i < m;i++)
        {
            char c;
            scanf(" %c", &c);

if(c >= '0' && c <= '9')
                num[c - '0'] = 1;
            else num[c - 'A' + 10] = 1;
            //cout<<"<<<<<<"<<endl;
        }
        //cout<<"<<<<<<"<<endl;
        if(n != 0)
        {
            int flag = bfs();
            if(flag == 0)
                printf("give me the bomb please\n");
        }
        else
        {
            //如果n == 0 那么只有零本身是他的倍数
            if(num[0])
                printf("0\n");
            else
                printf("give me the bomb please\n");
        }
    }
    return 0;
}

hdu 1226 超级密码相关推荐

  1. hdu 1226(bfs+同余剪枝)

    超级密码 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  2. 大亚DP607超级密码,破解方法

    今天把原来的电话有线宽带换为20M光纤宽带,咱也体验一回光纤极速快感!电信送的光猫为DARE DP607.暂无法使用路由及无线WIFI,破解中....... 打开浏览器输入192.168.1.1进入光 ...

  3. 中兴F412光猫超级密码破解、破解用户限制、关闭远程控制、恢复路由器拨号

    不少家庭都改了光纤入户,那肯定少不了光猫的吧.今天以中兴F412光猫为例介绍下此型号光猫超级密码的破解方法. 一.F412超级密码破解方法 1.运行CMD,输入telnet 192.168.1.1: ...

  4. 四步破解大亚DP607超级密码,别的光猫可能也适用!

    步骤: 1.进入192.168.1.1 2.用户名输入anonymous,密码不用,登陆 3.输入网址192.168.1.1/backupsettings.conf 4.用记事本打开此文件,第一行&l ...

  5. 台达s1变频器参数表_变频器被加密,有这些超级密码,不用慌(各种品牌都有,建议收藏...

    西门子品牌 6SE70书本型变频器:设定密码打不开时,将P358和P359中数据改为相同即可. ABB品牌 ACS600变频器:在16.03参数中输入密码"23032",102.0 ...

  6. 保姆级-天翼网关TEWA-700G、TEWA-1000E/G等系列光猫获取超级密码

    准备: 1.天翼网关光猫 2.FAT32U盘 3.电脑 第一步 先将U盘插上网关,确定光猫可以正确识别 进入光猫新版的后台,192.168.1.1,账户密码在光猫底部的标签上,或拨打10000号查询 ...

  7. 天翼网关超级密码获取器

    天翼网关超级密码获取器 一.界面截图 二.链接 三.天翼网关名称:天翼网关-EPON 网关型号:TEWA-600NEM 附上超级密码获取成功和登录截图 一.界面截图 二.链接 链接:https://p ...

  8. 关于移动H3_2s光猫获得超级密码的步骤以及上传本地配置文件覆盖光猫的配置文件的方法

    本文总结了一下如何通过telnet以及tftp获取超级密码以修改光猫设置 第一步,打开光猫telnet 先登录光猫,在打开该链接 http://192.168.1.1/getpage.gch?pid= ...

  9. 东秦OJ_1841: 超级密码

    题目描述: 小明今年9岁了,最近迷上了设计密码!今天,他又设计了一套他认为很复杂的密码,并且称之为"超级密码". 说实话,这套所谓的"超级密码"其实并不难:对于 ...

最新文章

  1. WordPress 5.1 发布,监控古老 PHP 版本、编辑器性能提升
  2. java自定义类怎么比大小_实战:Java 扑克牌比较游戏
  3. 浅谈Junit测试中反射和Jmock的应用
  4. 多目标分类的混淆矩阵_用于目标检测的混淆矩阵
  5. P3808,P3796-[模板]AC自动机(简单版/加强版)
  6. MS SQL JSON类型type
  7. java小程序开发平台,隔壁都馋哭了
  8. 毕业与计算机专业,电子与计算机工程专业毕业后干什么
  9. python自动化元素定位_Appium+Python自动化 4 -appium元素定位
  10. 常用正则表达式锦集与Python中正则表达式的用法
  11. 011-你觉得自动化测试有什么意义,都需要做些什么
  12. mysql sql执行慢_Mysql执行查询语句慢的解决方式
  13. java udp传输文件6_文件传输udpjava数据
  14. 批量快速的导入导出Oracle的数据(spool缓冲池、java实现)
  15. 机器人操作系统ROS是什么?
  16. python不定积分教学_python使用sympy不定积分入门及求解
  17. 策划好一场活动的要点和方法有哪些?
  18. 首页技术支持常见问题宽带外网IP显示为10、100、172开头,没有公网IP,如何解决?...
  19. Pairwise ranker
  20. 在Android Studio中隐藏APP的标题栏

热门文章

  1. Linux命令:shutdown
  2. Ansys Lumerical | 光纤布拉格光栅温度传感器的仿真模拟
  3. mysql忘记密码处理方法
  4. Java图书借阅管理系统(含源码+论文+答辩PPT等)
  5. 个人备考PMP历程分享心得
  6. 使用工具检测你的app:模拟器和真机测试 之一
  7. 计算机毕业设计选题参考【系统、论文】
  8. 计算机软件技术基础 王海燕,认知案例教学法在“计算机软件技术基础”课程中的探讨与应用.doc...
  9. 中职计算机教学案例,xx年中职计算机教学案例.pdf
  10. php如何去除侧栏,WordPress移除侧边栏图文教程