HDU - 1226 超級密碼
重點是餘數判重 其他就是簡單搜尋問題
但是有兩個bug:
1、M個整數可能有重複的。
2、N可能為0。
int judge(node &a)
{
int tmp=0;
int i;
for(i=0;i<a.len;i++)
{
tmp=(tmp*c+a.base[i])%n;
}
return tmp;
}
#include<stdio.h>
#include<iostream>
#include<string>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 30;
const int inf = 1<<30;
int n,c,m;
int mark[18];
bool h[18],vis[5005];
struct node
{
int left,len;
string s;
};
char int_char( int k )
{
if( k <= 9 )
return k + '0';
return k-10 + 'A';
}
void BFS()
{
node cur,cnt;
queue<node>que;
memset(vis,0,sizeof(vis));
for( int i = 0; i < m; i ++ ){
if( mark[i] ){
cur.left = mark[i]%n; //大數取餘
cur.s = ""; cur.len = 1;
cur.s += int_char(mark[i]);
if( !cur.left ){
cout<<cur.s<<endl;
return;
}
if( !vis[cur.left] ){
vis[cur.left] = 1;
que.push(cur);
}
}
}
while( !que.empty() ){
cur = que.front(); que.pop();
if( cur.len >= 500 )
break;
for( int i = 0; i < m; i ++ ){
cnt = cur;
cnt.left = (cnt.left*c+mark[i])%n;
if( vis[cnt.left] )
continue;
vis[cnt.left] = true;
cnt.len ++;
cnt.s += int_char(mark[i]);
if( !cnt.left ){
cout<<cnt.s<<endl;
return;
}
que.push(cnt);
}
}
puts("give me the bomb please");
}
int main()
{
//freopen("data.txt","r",stdin);
int cas;
char ch[2];
scanf("%d",&cas);
while( cas -- ){
scanf("%d%d%d",&n,&c,&m);
memset(h,0,sizeof(h));
for( int i = 0; i < m; i ++ ){
scanf("%s",&ch);
if( isdigit(ch[0]) ) //標記出現的數字
h[ch[0]-'0'] = 1;
else
h[ch[0]-'A'+10] = 1;
}
m = 0;
for( int i = 0; i < 16; i ++ ) //存入陣列mark
if( h[i] )
mark[m++] = i;
if( n != 0 ){
BFS();
}
else{
if( mark[0] == 0 )
puts("0");
else
puts("give me the bomb please");
}
}
return 0;
}
相關文章
- 光貓超級帳號密碼,重置光貓獲取超級帳號密碼密碼
- HDU 2043 密碼密碼
- (轉)找回vss超級管理員密碼密碼
- hdu 2072 Java 單詞數(超級坑) HDU 2072Java
- 2024年移動光貓獲取超級密碼密碼
- 讀AI新生:破解人機共存密碼筆記08超級智慧AI密碼筆記
- 雲原生重構世界:AI決策構建數字經濟超級密碼AI密碼
- 最爛密碼、神級密碼和逆天改命密碼,我已經跪下叫爸爸了!密碼
- JavaScript密碼強度等級詳解JavaScript密碼
- 如何提高個人密碼的安全級別密碼
- 超級有用的CSS編碼工具集CSS
- iOS超級超級詳細介紹GCDiOSGC
- 超級實用的 iptables 防火牆指令碼防火牆指令碼
- 超級有用的9個PHP程式碼片段PHP
- 希爾密碼(hill密碼)密碼
- Excel密碼破解超簡單?這樣加密別想破解Excel密碼加密
- 密碼安全:密碼設定要求,密碼爆破辦法,密碼歸類使用,密碼處置方案密碼
- 幾個超級實用的css程式碼片段CSS
- 來呀,快活呀。iOS 超級碼農群:538549344iOS
- VB 螢幕融化超級惡搞程式程式碼
- 超強python黑客技術,aircrack-ng突破 wifi 密碼!Python黑客AIWiFi密碼
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 輕量級超級 css 工具CSS
- 超級鋼琴
- 超級膠水
- 超級表達
- 序列密碼與分組密碼密碼
- U盾密碼密碼重置方法密碼
- 隱藏密碼?顯示密碼?密碼
- 應用密碼學——古典密碼密碼學
- 【新聞】室溫超導體來了?可以在超級計算機上寫程式碼,用超級計算機打遊戲?計算機遊戲
- FPGA -- SPI 時序實現(超級靈活,超級好用)FPGA
- 密碼密碼
- 10g升級到11g密碼問題密碼
- java集合梳理【10】— Vector超級詳細原始碼分析Java原始碼
- 超級乾貨:帶你全面瞭解低程式碼!
- 超級實用且不花哨的js程式碼大全JS
- 【密碼】Oracle使用者密碼系列密碼Oracle