這題要換個思維,不要想著如何通過已有的條件來得到正確的值,而是列舉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這兩個數字同時存在於這兩個數中,...