這一題是比較難實現的雙向搜尋題:(字串+雙向搜尋+hash記憶化)
我們可以先把k的前半部分列舉出來,並將得出的所有結果和題目給的n個數的每乙個數的前半部分都比對一遍,得到它和每乙個數有幾位相同,並hash存到map中去。
然後我們列舉k的後半部分,並將得出的所有結果和題目給的n個數的每乙個數的後半部分都比對一遍,得到它和每乙個數有幾位相同。這樣我們可以得到:對於每乙個列舉出的結果,他所對應的前半部分和n個數中每個數比對後應該有幾位相同,將你得到的結果與標準值取差然後hash,看map中是否有一樣的值存在。(存在就表示你找到了乙個(也可能是多個)解,然後判斷一下輸出即可)
當然,這一題還難在細節,要仔細一點(前導零,字串的處理,如何hash,怎樣比對,分類討論應該輸出什麼........)
#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long
#define db double
#define inf 0x7fffffff
#define rg register int
using namespace std;
int n,m,s,su,ans,f;
int l[11],r[55];
int b[55],a[55][11];
char ch[55];
maph;
inline int qr()
inline int haxi()
return sdf%inf;
}inline int bint(int i,int j)
inline void yu(int t)
int sdf=haxi(),lkj=bint(1,m);
if(h.find(sdf)!=h.end()) h[sdf]=-1;
else h[sdf]=lkj;
return ;
} for(rg i=0;i<=9;++i)
l[t]=i, yu(t+1);
}inline void dfs(int t)
int sdf=haxi();
if(h.find(sdf)!=h.end())
} return ;
} for(rg i=0;i<=9;++i)
l[t]=i,dfs(t+1);
}int main() yu(1); dfs(m+1);
if(ans)printf("%d",ans);
} else puts("liar");
return 0;
}
L1 L2損失 和 L1 L2正則化
1 l1損失 最小絕對值誤差 最小化 值 真實值 的絕對值,魯棒性強。2 l2損失 最小平方誤差 最小化 值 真實值 的平方,對於大於1的數,平方更大,因此對樣本敏感。3 l1正則化 l1正則化和l2正則化可以看做是損失函式的懲罰項,l1正則化是指權值向量中各個元素的絕對值之和。l1正則化可以產生稀...
L1 L2範數 概念
向量的範數可以簡單形象的理解為向量的長度,或者向量到零點的距離,或者相應的兩個點之間的距離。向量的範數定義 向量的範數是乙個函式 x 滿足非負性 x 0,齊次性 cx c x 三角不等式 x y x y 常用的向量的範數 l0範數 x 0為x向量各個非零元素的個數 l1範數 x 1 為x向量各個元素...
面試L0,L1,L2範數
在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差。最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。引數太多,會導致模型複雜度上公升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數才能...