日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

201512-5 矩阵

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201512-5 矩阵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

只會暴力,答案沒看懂,嗚嗚嗚。乘的時候還亂七八糟的。

#include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <queue> #include <bitset> #define ls (u<<1) #define rs (u<<1|1) #define mid (l+r>>1) using namespace std; typedef long long LL; typedef pair<int,int> PII; const int N = 1000, mod = 1e9 + 7;bitset<N> a[31][N], b; void inverse(bitset<N> &a); void prin(bitset<N> a[]);int n, m;void mull(bitset<N> a[], bitset<N> b[]) {bitset<N> c[N];for(int i = 0;i < m;i ++)for(int j = 0;j < m;j ++)c[i][j] = b[m-1-j][i]; // prin(b);prin(c);cout<<" --- ";for(int i = 0;i < m;i ++)for(int j = 0;j < m;j ++)a[i][j] = (b[i]&c[j]).count()&1; } void mull(bitset<N> &a, bitset<N> b[]) {bitset<N> c;for(int i = 0;i < m;i ++) c[m-1-i] = (b[i]&a).count()&1;a = c; }int main() {scanf("%d", &m);string c;for(int i = 0;i < m;i ++) inverse(a[0][i]); inverse(b);for(int i = 1;i < 31;i ++) mull(a[i], a[i-1]);scanf("%d", &n);while(n --){int k, f = 0;bitset<N> ans = b;scanf("%d", &k);while(k){if(k&1)mull(ans, a[f]);f++; k >>= 1;}for(int i = m-1;i >= 0;i --)cout<<ans[i];cout<<endl;}return 0; }void inverse(bitset<N> &a){string c;cin>>c;for(int i = 0;i < c.size();i ++)a[i] = c[c.size()-1-i]-'0';} void prin(bitset<N> a[]){puts("");for(int i = 0;i < m;i ++)cout<<a[i]<<endl;puts("");}

總結

以上是生活随笔為你收集整理的201512-5 矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。