HDU 1172 猜數字 廣搜

2021-09-06 04:31:26 字數 928 閱讀 9179

這題要換個思維,不要想著如何通過已有的條件來得到正確的值,而是列舉0000-9999這10000個數,看滿足條件的數字有多少個,只有剛好有乙個的數滿足的情況下才輸出。

**如下:

#include 

#include

#include

#include

#include

#define min( x, y ) (x) < (y) ? (x) : (y)

using

namespace std;

struct node

n[105];

void cmp( char *s, char *c, int &right, int &pos )

;int chash[15] = ;

for( int i = 0; i < 4; ++i )

for( int i = 0; i < 4; ++i )

for( int i = 0; i < 10; ++i )

}void getnext( char *s )

else

}

}void dfs( bool &ans, int &num, int n )

;for( int i = 0; i < 10000; ++i )

}

if( !flag )

}getnext( t );}}

int main()

bool ans = false;

dfs( ans, num, n );

if( ans )

printf( "

%d\n

", num );

else

puts( "

not sure

" );

};return

0;}

HDU 1172 猜數字 深搜

description 猜數字遊戲是gameboy最喜歡的遊戲之一。遊戲的規則是這樣的 計算機隨機產生乙個四位數,然後玩家猜這個四位數是什麼。每猜乙個數,計算機都會告訴玩家猜對幾個數字,其中有幾個數字在正確的位置上。比如計算機隨機產生的數字為1122。如果玩家猜1234,因為1,2這兩個數字同時存在...

列舉 hdu1172 猜數字

因為時間給的非常多,然後測試組數又很小,所以是乙個很粗暴的模擬 只要從1000到9999列舉答案,然後再判斷符合答案的個數,看個數的數量差不多就做完了 然後就在於如何判斷有幾個數字同時存在,我的思路是用vis1和vis2分別記錄進行比較的兩個數字中,每個數字出現的次數 那麼如果對於某個數字,vis1...

暴力 猜數字(hdu1172)

題目描述 猜數字遊戲是gameboy最喜歡的遊戲之一。遊戲的規則是這樣的 計算機隨機產生乙個四位數,然後玩家猜這個四位數是什麼。每猜乙個數,計算機都會告訴玩家猜對幾個數字,其中有幾個數字在正確的位置上。比如計算機隨機產生的數字為1122。如果玩家猜1234,因為1,2這兩個數字同時存在於這兩個數中,...