设为首页 加入收藏

TOP

BFS-hdu-1226-超级密码
2014-11-23 21:34:29 来源: 作者: 【 】 浏览:6
Tags:BFS-hdu-1226- 超级 密码

题目意思:

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

解题思路:

BFS。

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

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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)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<='0'&&save[i]<='9') (save[i]-'0'):(10+save[i]-'A');
         int t=(tt.m*jj+aa)%n;

         if(!t) //不小于2位的情况
         {
            cout<=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;
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 10006 - Carmichael Numbers .. 下一篇HDU 4279 - Number

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)
·使用华为开发者空间 (2025-12-27 04:19:24)
·Getting Started wit (2025-12-27 03:49:24)
·Ubuntu 上最好用的中 (2025-12-27 03:49:20)