注意密码位数<=500 输出注意十六进制改成字母

要点题目都已说明 ac就好

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue> #define N 5100
#define L(x) (x<<1)
#define R(x) (x<<1|1)
using namespace std; inline int Max(int a,int b){return a>b?a:b;}
inline int Min(int a,int b){return a<b?a:b;}
int a[20],k,n,c;
int vis[N]; //取模后出现的可能只会是 [0, n-1]
int pre[N];
int num[N];
void BFS(){
memset(vis, 0, sizeof(vis));
memset(pre, -1, sizeof(pre));
queue<int>q;
int mod; for(int i=0;i<k;i++)
{
if(!a[i])continue;
mod = a[i]%n;
if(!vis[mod])
{
vis[mod] = 1;
num[mod] = a[i];
q.push(mod);
} if(a[i]%n == 0)
{if(a[i]<=10)printf("%d\n",a[i]); else printf("%c\n",a[i]-10+'A');return ;}
}
bool su =false;
while(!q.empty() && su == false){
mod = q.front(); q.pop();
for(int i=0;i<k;i++)
{
int now = (mod*c + a[i])%n;
if(now == 0){ pre[now] = mod;num[now]=a[i]; su = true; break; }
if(!vis[now])
{
q.push(now);
vis[now]=1;
pre[now] = mod;
num[now] = a[i];
}
}
} if(su == false){printf("give me the bomb please\n");return ;}
int top=0,ans[N];
for(int i=0; i!=-1;i=pre[i])
ans[top++]=num[i];
if(top>500){printf("give me the bomb please\n");return ;}
for(int i=top-1;i>=0;i--)
if(ans[i]>=10)
printf("%c",ans[i] - 10 +'A');
else
printf("%d",ans[i]);
printf("\n");
} int main(){
int T;scanf("%d",&T); while(T--){
scanf("%d %d %d",&n,&c,&k); for(int i=0;i<k;i++){
char c=getchar();
while( !( '0'<=c && c<='9') && !( 'A'<=c && c<='F')) c=getchar(); if( '0'<=c && c<='9' ) a[i] = c - '0';
else a[i] = c - 'A' +10;
} sort(a,a+k); if(n == 0){
if(a[0])printf("give me the bomb please\n");
else printf("0\n");
continue;
} BFS();
}
return 0;
}
/*
3
22 10
3
7 0 1 2 10
1
1 25 16
3
A B C */

HDU 1226 BFS的更多相关文章

  1. hdu 1226 BFS + bfs记录路径

    http://acm.hdu.edu.cn/showproblem.php? pid=1226 为了节省空间.您可以使用vis初始化数组初始化-1. 发现BFSeasy错了地方 始一直WA在这里:就是 ...

  2. hdu 1226 bfs+余数判重+大数取余

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

  3. hdu 4531 bfs(略难)

    题目链接:点我 第一次不太清楚怎么判重,现在懂了,等下次再做 /* *HDU 4531 *BFS *注意判重 */ #include <stdio.h> #include <stri ...

  4. HDU 1226 超级密码(数学 bfs)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1226 超级密码 Time Limit: 20000/10000 MS (Java/Others)    ...

  5. hdu.1226.超级密码(bfs)

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

  6. hdu 1226 超级密码(bfs+余数判重)

    题意:略过 分析:用m个数字组成一个能够被n整除的c进制数的最小值,实际上本题的关键就在于这个最小值上.  首先确定我们的思路是从小到大寻找.先查看一位数,即查看着m个数字是否能被n整除:若不能,就查 ...

  7. HDU 1226 超级密码(BFS) (还需研究)

    Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Desc ...

  8. HDU 1226 超级密码 (搜素)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1226 题意简单,本来是一道很简单的搜素题目. 但是有两个bug: 1.M个整数可能有重复的. 2.N可 ...

  9. HDU 2822 (BFS+优先队列)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2822 题目大意:X消耗0,.消耗1, 求起点到终点最短消耗 解题思路: 每层BFS的结点,优先级不同 ...

随机推荐

  1. mybatis和spring3.1整合

    因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件. 需要的jar包 mybatis-3.0.6.jar mybatis- ...

  2. Qt之自定义控件(开关按钮)Qt之模拟时钟

    http://blog.csdn.net/u011012932/article/details/52164289 http://blog.csdn.net/u011012932/article/det ...

  3. js监听输入框值的即时变化onpropertychange、oninput

    js监听输入框值的即时变化onpropertychange.oninput 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感. // //   要达到的效果 ...

  4. matlab 设置横纵坐标刻度的字体!!

    set(gca,'FontSize',16) %%设置横纵坐标字体的大小

  5. Git教程(2)官方命令文档及常用命令表

    http://www.cnblogs.com/angeldevil/archive/2013/11/26/3238470.html 1,官方命令文档 http://www.git-scm.com/do ...

  6. Oracle DBA常用SQL

    监控SQL 1.监控事例的等待: select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,c ...

  7. 解决windows下vim方向键变成 ABCD 的问题

    一.问题描述: windows下面要安装git --> 安装了 msys2 -->安装并更新了 vim(7.4),然后在使用过程中发现vim不能使用  BACKSPACE 键,按方向键会打 ...

  8. MediaPlayer和AudioTrack播放Audio的区别与联系

    转自http://blog.csdn.net/ameyume/article/details/7618820 播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供 ...

  9. bzoj1433:[ZJOI2009]假期的宿舍

    明显的二分图最大匹配. #include<cstdio> #include<cstring> #include<cctype> #include<algori ...

  10. shape的属性

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...