題意:給出最大4096*64和64*4096的矩陣,其中有乙個矩陣只含有0和1,問你它們相乘所得到得矩陣所有元素異或
思路:一開始我想到的是能不能將01矩陣的一排都用二進位制表示,但是發現2的64次方大於4096,反而增大了複雜度,於是沒有做出這題,題解是將矩陣分塊,最多分成8塊,這樣01矩陣的種數有255種,然後再暴力求解,看起來很難寫,但是捋清楚思路和寫法,這題不難寫
#include #include #include #include #include #include #include #include #include #include using namespace std;#define ll long long
const int maxn=4096+10;
int a[maxn][70];
int b[maxn][70];
int de[maxn][10][(1<<8)+10];
int main()
// cout<}
}for(int i=1; i<=m; i++)
}int len=p/8+(p%8!=0);
// cout
}int ans=0;
for(int nn=1; nn<=n; nn++)
// cout/ cout
}//cout
// cout<}
}printf("%d\n",ans);
return 0;
}
牛客國慶集訓派對Day2 Solution
a 矩陣乘法 思路 1 牛客機器太快了,暴力能過。1 include 2 using namespace std 34 define n 500056 intn,p,m 7int a n 100 b 100 n ans n n 89 void run 1029 30 31int main 32vie...
牛客國慶集訓派對Day1
a 看樣例過題 include include include include include using namespace std typedef long long ll typedef pairpii const int maxn 1e5 10 vectorg maxn int a 10 i...
牛客國慶集訓派對Day4
a 把b n include include include includeusing namespace std int main d 由於是個完全圖,選擇乙個權值最小的點,其他所有的點向它連線就行了。注意點為1的時候輸出0 include include include includeusing...