BFS-hdu-1226-超级密码

hdu 1226 超级密码bfs Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Hand Online Acmers Forum | Discuss Statistical Charts Problem Archive Realtime Judge Statu 阅读详情

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1226

题目意思:

给一个N,给nn个jj进制的数字,问最小的不超过500位的由这些数字组成的jj进制数是十进制数N的正整数倍。

解题思路:

BFS。

因为N<=5000,所以用余数判重。

代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<list>
#include<queue>
#define eps 1e-6
#define INF 0x1f1f1f1f
#define PI acos(-1.0)
#define ll __int64
#define lson l,m,(rt<<1)
#define rson m+1,r,(rt<<1)|1
//#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;

/*
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
*/

bool vis[5500];
char save[20];
int n,jj,nn;

struct Inf
{
   string s;
   int m,len;
};

bool cmp(char a,char b)
{
   return int(a)<int(b);
}

void bfs()
{
   memset(vis,false,sizeof(vis));
   queue<Inf>myq;

   for(int i=1;i<=nn;i++)
   {
      if(save[i]=='0')
         continue;
      Inf tmp;
      tmp.s="",tmp.len=1;
      tmp.s+=save[i];
      tmp.m=((save[i]>='0'&&save[i]<='9')?(save[i]-'0'):(10+save[i]-'A'))%n;
      if(tmp.m==0) //只有一位的情况 特殊处理
      {
         cout<<tmp.s<<endl;
         return ;
      }
      vis[tmp.m]=true;
      myq.push(tmp);
   }

   while(!myq.empty())
   {
      Inf tt=myq.front();
      myq.pop();
      for(int i=1;i<=nn;i++)
      {
         int aa=(save[i]>='0'&&save[i]<='9')?(save[i]-'0'):(10+save[i]-'A');
         int t=(tt.m*jj+aa)%n;

         if(!t) //不小于2位的情况
         {
            cout<<tt.s;
            printf("%c\n",save[i]);
            return ;
         }
         if(vis[t])
            continue;
         vis[t]=true;
         Inf cur;
         cur.len=tt.len+1;
        if(cur.len>=500) //超过500位
            continue;
         cur.s=tt.s+save[i];
         cur.m=t;
         myq.push(cur);
      }
   }
   printf("give me the bomb please\n");
   return ;

}

int main()
{
   int t;

   scanf("%d",&t);
   while(t--)
   {
      scanf("%d%d%d",&n,&jj,&nn);
      getchar();
      //fflush(stdin); //由于这句话 ,wa了一上午
      for(int i=1;i<=nn;i++)
         scanf("%s",save+i);
      //save[nn+1]='\0';
      sort(save+1,save+nn+1,cmp);
      if(n==0)
      {
         if(save[1]=='0')
            printf("0\n");
         else
            printf("give me the bomb please\n");
         continue;
      }
      //printf("%s\n",save+1);
      bfs();
   }

   return 0;
}



Cocos Creator 3D音频定位实战:从原理到沉浸感实现 3D音频定位是游戏开发中实现沉浸感的关键技术,其核心原理基于HRTF(头部相关传输函数)模型,模拟声音在空间中的传播与双耳感知差异。这项技术通过赋予声音空间坐标、距离衰减和方向属性,将音频从背景元素提升为可交互的环境线索,极大增强了虚拟世界的真实感与玩家的空间认知。在工程实践中,开发者需要深入理解声源、听者、衰减曲线与多普勒效应等基础概念,并合理运用音频池、优先级管理与动态混音等技术手段来平衡效果与性能。对于Cocos Creator开发者而言,无论是使用引擎原生的AudioSource组件构建轻量级方案, 阅读详情

相关推荐

手把手教你搞定JBI投稿:从Statement of Significance到Declaration Statement的保姆级避坑指南

本文提供了一份详细的JBI投稿指南,重点解析Statement of Significance和Declaration of Interests的撰写技巧,帮助研究者避开常见格式陷阱。通过实战案例和检查清单,确保投稿符合JBI的学术严谨性和临床转化价值要求,提升稿件通过率。

weixin_29278805的博客 624

HDU 1226 超级密码 BFS

Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进制的数,并且只能由给定的M个数字构成,同时密码是一个给定十进制整数N(0<=N<=5000)的正整数倍(如果存在多个满足条件的数,那么最小的那个就是密码),如果这样的密码存在,那么当你输入它以后门将打开,...

名字呢? 277

用Python手把手教你实现一个多层感知机(MLP)——从理论到代码实战

本文详细介绍了如何使用Python和Theano库从零开始实现多层感知机(MLP),涵盖从核心原理到代码实战的全过程。通过构建隐藏层、输出层和完整MLP模型,结合权重初始化、激活函数选择和训练技巧,帮助开发者深入理解神经网络工作机制,并应用于实际机器学习任务。

web39explorer的博客 970

hdu1226超级密码 bfs

传送门:hdu1226 中文题题意就不多说了,重点是方法,不要试图去枚举十进制n的倍数来然后看看给的几个数字能否凑出来,可以想象2要翻倍多少次才能达到500位的长度,因此要从给定的数字入手,枚举数字的各种组合情况,判断是不是n的整数倍。而且这样的话还有一个强剪枝就是如果余数相同就没必要再次入队了,因为无论是大数还是小数如果模n同余那么再添上其他数字的话再模n还是同余的,这样每个余数最多在队列里出

WA是一笔财富 1735

wireshark抓包分析TCP协议和用Fiddler抓包Https分析

wireshark抓包分析TCP协议和用Fiddler抓包Https分析 1.实验说明: 以某种游戏的客户端连接服务器、断开服务器为例,用wireshark抓包分析TCP协议的三次握手连接、四次握手断开,与计算机网络原理进行验证;用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 2.实验过程: wireshark实验: (1)实验准备:安装《洛克王国》游戏客户端, 运行洛克王国客户端,打开内存资源管理器查看PID 根据PID查看洛克王国服务端的IP地址和端口号 并打开命令行运行以下命令: n

qq_42032327的博客 1261

IPD流程中的RR\OR\IR\PB\SR\AR\CR等名词汇总(基于新的产品包需求架构)

RR:Raw Requirement,原始需求=》IR:Initial Requirement,初始需求=》SR:System Requirement,系统需求=》AR:Allocated Requirement,分配需求=》CR:Process Change Requirement,流程变更需求。

a1809032425的博客 3191

HDU 1226超级密码(数位BFS)

HDU 1226超级密码(数位BFS) http://acm.hdu.edu.cn/showproblem.php?pid=1226 Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进制的数,并且只能由给定的M个数字构成,同时密码是一个给定十

code 1939

Allegro如何把分离的线段变成封闭连续的图形

Allegeo支持把分离的线段变成封闭连续的图形,以下图为例,线段是分离的。Allegro如何把分离的线段变成封闭连续的图形。Find选择other segs 和Lines。Find选择other segs 和Lines。选择shape-compose shape。分离线段已经是连续封闭的shape形式了。框选图形,删除剩下的无用的分离线段。Find选择shapes。鼠标右击选择done。选择delete命令。鼠标右击选择done。

weixin_54787054的博客 6240

hdu1226 超级密码 bfs

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1226 思路: 因为n 代码: #include #include #include #include using namespace std; const int maxn = 20; const int maxm = 5100; const int inf = (0x7f7f7f

671coder的专栏 3194

【OTFS与信号处理:论文阅读4】OTFS时延多普勒域嵌入导频辅助信道估计(已更新)

【OTFS与信号处理:论文阅读】Embedded Pilot-Aided Channel Estimation for OTFS in Delay–Doppler Channel(快来看看OTFS嵌入式导频设计的经典之作!!!)

Cuby的博客 5335

【云原生技术】SonarQube 生态中PMD插件和P3C插件详细介绍

4. 在项目中如何选择 / 组合 1. 小团队、对《阿里规约》认同度高 → 直接启用 **P3C**,配合 SonarJava 基本够用。 2. 追求全面 Bug/安全检测 + 额外编码规范 → **SonarJava + PMD**(必要时加 P3C 少量规则)。 3. 大型多团队,希望“一本规约”统一风格 → **P3C 为主**,再补充 SonarJava/PMD 的 Bug 与安全规则。 4. 通过 Quality Gate 控制:将 **Blocker/Critical** Bug

weixin_46453070的博客 1366

HDU 1226 超级密码(数学 bfs)

传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1226 超级密码 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4901    Accepted Submission(s): ...

Y先森0.0 243

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

perseverance51博客 1122

HDU1226 超级密码 BFS

HDU1226 超级密码 BFS

htrdchh的博客 231

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

hdu 1226 超级密码 bfs

C - 超级密码 Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示

Marcus-Bao的个人主页 779

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDU 1226 超级密码(BFS)

Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进制的数,并且只能由给定的M个数字构成,同时密码是一个给定十进制整数N(0 注意:由于宝藏的历史久远,当时的系统最多只能保存500位密码.因此如果得到的密码长度大于500也不能用来开启房门

Must so 698

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hdu-1226-超级密码 [bfs]

题目传送门思路:标记出现过的数字并依次进入队列进行bfs,注意标记已经出现过的余数,防止重复计算。#include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <queue> using namespace std;

裤头是叫裤头的裤头 567

【hdu】1226 超级密码【bfs】

题意: 找出最小的c进制数,其中c进制数只能由给定的数组成,要求是n的倍数 题解: 之前觉得广搜范围太大,找不到剪枝,并且c进制数与10进制数之间的转换也是个问题,看了大神们的blog,发现想到方法了原来是道水题 1.用一个含string和int的结构体记录当前节点所包含的数字和当前节点包含数字%n的值,这样我们在数字后面加上一位的话只需要将数字*16+就可以了,如果要计算下一个%也很方便

a709743744的博客 602

hdu 1226 超级密码【BFS】

超级密码 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3509    Accepted Submission(s): 1108 Problem Description Ignatius花了一个星期的时间终于

mengxiang000000 957

HDU 1226 超级密码 (bfs好题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1226wa了n发。。之前一直re。找了好久才发现是算c进制化十进制模n时,溢出了。所以得到的余数是负数,然后对数组就访问了非法位置。代码如下。#include <iostream> #include <stdio.h> #include <string.h> #include <queue> #inclu

Where amazing happens 600

hdu - 1226 超级密码 (bfs)

http://acm.hdu.edu.cn/showproblem.php?pid=1226 难以想到怎么去bfs,还是对状态的划分不明确,知道了之后感觉还是挺简单的。 这题关键是密码可能很长,然后判断是否整除用到了一点技巧,确保不会溢出,输出的时候是用递归回溯输出。 因为同一个数可以取多次,而最终取的是数值最小的,故输入之后从小到大排序,然后从第一个数到最后一个数每次添加一遍,直到找到合适...

weixin_30826095的博客 129

hdu1226 超级密码--BFS

原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1226 直接上代码,中文题。 #define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_Cy1_OVERLOAD_STANDARD_NAMES 1 #include #include #include #include

半壶老酒 735

[HDU 1226]超级密码:BFS

点击这里查看原题n只有5000,设vis[i]表示模n为i的最小的c进制数(在代码里,vis[i]表示模n为i的数是否已出现),可以用BFS来求解,若位数大于500或该余数已出现过,则不再加入队列,找出最小的模n为0的数即为答案。/* User:Small Language:C++ Problem No.:1226 */ #include<bits/stdc++.h> #define ll long

SmallSXJ的博客 364

超级密码hdu1226 bfs

自己在存的时候用的结构体不好。。。结果还要看别人的代码。。 收货; ①:大数取模。。(用数组存数字 ②;这个地方的边界  vis   和str.len ③:因为这个地方是如果有多种结果取最小的,所以用for从0到15循环,,我原本不是这样的。。 ④;用一个什么样的结构存数组,而且要有len,是因为要方便地判断数组的长度 #include #include #include #i

now_ing的博客 270
上一篇: BFS+状态压缩 hdu-1885-Key Task
下一篇: BFS+余数判重+数论 hdu-1664-Different Digits
Accagain
博客等级 码龄14年 376粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值