a1333. 矩陣乘法(梁 盾)
時間限制:2.0s 記憶體限制:256.0mb
總提交次數:515ac次數:211平均分:54.14
將本題分享到:
檢視未格式化的試題
提交試題討論
試題**
2012中國國家集訓隊命題答辯
問題描述
給你乙個n*n的矩陣,不用算矩陣乘法,但是每次詢問乙個子矩形的第k小數。
輸入格式
第一行兩個數n,q,表示矩陣大小和詢問組數;
接下來n行n列一共n*n個數,表示這個矩陣;
再接下來q行每行5個數描述乙個詢問:x1,y1,x2,y2,k表示找到以(x1,y1)為左上角、以(x2,y2)為右下角的子矩形中的第k小數。
輸出格式
對於每組詢問輸出第k小的數。
樣例輸入
2 22 1
3 41 2 1 2 1
1 1 2 2 3
樣例輸出13
資料規模和約定
矩陣中數字是109以內的非負整數;
20%的資料:n<=100,q<=1000;
40%的資料:n<=300,q<=10000;
60%的資料:n<=400,q<=30000;
100%的資料:n<=500,q<=60000。
poj2104 k-th的二維拓展,開個二維樹狀陣列即可!
#include#includeusing
namespace
std;
inline
intread()
while(ch>='
0'&&ch<='9')
return x*f;
}const
int n=505,z=3.5e5+5
;const
int inf=2e9;
struct
nodep[z],p1[z],p2[z];
intn,m,tot,bit[n][n],ans[z];
intmx,mn;
inline
int lowbit(int
x)inline
void update(int x,int y,int
v) }
}inline
int query(int x,int
y) }
return
res;
}void solve(int l,int r,int x,int
y)
int mid=x+y>>1,i,t1(0),t2(0),tt(0
);
for(i=l;i<=r;i++)
else
}else
else}}
for(i=1;i<=t1;i++) if(!p1[i].opt) update(p1[i].x1,p1[i].y1,-1
);
for(i=1;i<=t1;i++) p[l+i-1]=p1[i];
for(i=1;i<=t2;i++) p[l+t1+i-1]=p2[i];
solve(l,l+t1-1
,x,mid);
solve(l+t1,r,mid+1
,y);
}int
main()
}for(int i=1;i<=m;i++)
solve(
1,tot,mn,mx);
for(int i=1;i<=m;i++) printf("
%d\n
",ans[i]);
return0;
}
矩陣乘矩陣
7 15 矩陣a乘以b 15分 給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有r a 行 c a 列,b有r b 行 c b 列,則只有c a 與r b 相等時,兩個矩陣才能相乘。輸入格式 輸入先後給出兩個矩陣a和b。對於每個矩陣,首先在一行中...
tensorflow點乘與矩陣乘
若 w 為 m 1 的矩陣,x 為 m n 的矩陣,那麼通過點乘結果就會得到乙個 mn 的矩陣。若 w 為 m n 的矩陣,x 為 m n 的矩陣,那麼通過點乘結果就會得到乙個 mn 的矩陣。w的列數只能為 1 或與x的列數相等 即n w的行數與x的行數相等 才能進行乘法運算。若 w 為 m p 的...
最優矩陣鏈乘
問題描述 乙個n m矩陣由n行m列共n m個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個n m的矩陣乘以乙個m p的矩陣等於乙個n p的矩陣,運算量為nmp。矩陣乘法滿足結合律,a b c可以表示成 a b c或者是a b c 兩者的運算量卻不同。例如當a 2 3 b 3 4...