HDU 4920 Matrix multiplication 暴力(bitset)
来源:互联网 发布:minitab比较多组数据 编辑:程序博客网 时间:2024/05/16 02:31
点击打开链接
题意:n*n矩阵A,B相乘后%3的结果 n<=800
直接相乘,O(n^3)=5e8 TLE
由于求%3后的结果 则用bitset保存A每行和B每列%3后的情况
则c[i][j]=A第i行和B第j列,共有部分的个数*权值x(x=1,2,4)
#include <bits/stdc++.h>using namespace std;const int N=2e3+20;bitset<N> a[N][3],b[N][3]; int ans(int i,int j){//& 第i行和第j列都有的部分 int x=(a[i][1]&b[j][1]).count();int y=(a[i][1]&b[j][2]).count();int z=(a[i][2]&b[j][1]).count();int l=(a[i][2]&b[j][2]).count();return x+y*2+z*2+l*4; }int main(){int n;while(cin>>n){int x;for(int i=1;i<=n;i++)for(int j=1;j<=3;j++)a[i][j].reset(),b[i][j].reset();for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&x);a[i][x%3].set(j);//i行第j列值为x%3值置为1 }}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&x);b[j][x%3].set(i);//}}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)printf("%d%c",ans(i,j)%3,j==n?'\n':' ');}return 0;}
0 0
- HDU 4920 Matrix multiplication 暴力(bitset)
- HDU 4920 Matrix multiplication(bitset)
- HDU 4920 Matrix multiplication 解题报告(暴力)
- Matrix multiplication(bitset)
- hdu 4920 Matrix multiplication
- HDU 4920 Matrix multiplication
- hdu 4920 Matrix multiplication
- HDU 4920 Matrix multiplication
- HDU 4920 Matrix multiplication
- HDU-4920-Matrix multiplication
- HDU 4920 Matrix multiplication
- HDU-4920 Matrix multiplication
- hdu 4920 Matrix multiplication(高效)
- HDU 4920 (Matrix multiplication)
- HDU 6085 暴力bitset
- HDU4920:Matrix multiplication(思维 & bitset)
- HDU 4920 Matrix multiplication(矩阵乘法)
- hdu 4920 Matrix multiplication (矩阵相乘)
- 4.11
- 高位低位存储方式以及数组地址细节
- 题目1036:Old Bill
- 静态块 和构造器在继承情况下执行顺序
- URAL1993-This cheeseburger you don't need
- HDU 4920 Matrix multiplication 暴力(bitset)
- Maven聚合和继承
- J2EE:MVC 模式
- SSL P2643 2016东莞市特长生考试 村庄重建
- Swift实现指纹识别
- String 详解
- 开启TCP BBR拥塞控制算法
- Junit测试
- oracle11g dataguard 备库数据同步的检查方法