鏈結 :
思路:把a*b矩陣 雜湊為數字 存到set
怎樣hash:先把每行字首+hash 掉用函式可以 求出區間hash值
**:
#include
using
namespace std;
typedef
unsigned
long
long ll;
const ll n=
1010
;ll m,n,a,b,q;
ll b[
1000010
],g[n]
[n];
//基數;
set mp;
//求區間【l,r】中的hash值
ll calc
(ll arr[
],ll l,ll r)
//接收到乙個一維陣列 ,g[i]相當於是個一維陣列的首位址
void
rhash()
}}intmain()
//與一維一樣
}rhash()
; cin>>q;
while
(q--
)//一維計算 }if
(mp.
count
(num)
)cout<<
"1"
"0"/set可以查詢出這個數是否存在
}return0;
}
注意:
這裡只是一種思路,記憶體超限
擴充套件下思路
這個題目要求比較嚴,在別的平台能過
bzoj2462 二維hash 矩陣hash
二維hash 相當於每個位置有兩個權,行乙個,列乙個,然後推的方法和一維一樣 bzoj2462 include include include include include using namespace std define p1 131 define p2 1331 行和列的模數不能相同,否則...
BZOJ 2462 矩陣模板 二維hash
題意 給出乙個n m的01矩陣,以及k個a b的01矩陣,問每個是否能匹配原來的01矩陣。由於k個矩陣的長和寬都是一樣的,所以把原矩陣的所有a b的子矩陣給hash出來。然後依次查詢是否存在即可。map被卡,用lower bound即可。include include include include...
二維矩陣與二維矩陣之間的卷積
最近在學習數字影象處理 digital image processing,dip 這門課,感覺有些吃力。由於在數字訊號處理 digital singal processing,dsp 這門課中只學了一維矩陣之間的卷積運算。假設我們的卷積核h為kernel矩陣 33 待處理矩陣f x,y 為 55 h...