HDU 4920 Matrix multiplication
2015-07-27 17:01
309 查看
因为模数为3,所以可以用bitset优化。。。简直666
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <vector> #include <algorithm> #include <map> #include <set> #include <bitset> using namespace std; int n,m,a,b,x,y; bitset <1005> x_1[805],x_2[805],y_1[805],y_2[805]; int main() { //freopen("in.txt","r",stdin); while(scanf("%d",&n)==1) { for(int i=0;i<=n;++i) { x_1[i].reset();x_2[i].reset(); y_1[i].reset();y_2[i].reset(); } for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { scanf("%d",&a); if(a%3==1)x_1[i].set(j); else if(a%3==2)x_2[i].set(j); } } for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { scanf("%d",&a); if(a%3==1)y_1[j].set(i); else if(a%3==2)y_2[j].set(i); } } for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { x=(x_1[i]&y_1[j]).count()+(x_2[i]&y_2[j]).count(); y=(x_1[i]&y_2[j]).count()+(x_2[i]&y_1[j]).count(); b=x+y*2;b%=3; if(j)putchar(' '); printf("%d",b); } puts(""); } } return 0; }
相关文章推荐
- mysql提示 Lock wait timeout exceeded解决办法
- MFC 中_MAX_PATH的理解
- 2015暑假集训第一周题目总结
- IOS开发单元格自定义方法之一
- java基础入门-建立可以多客户端链接的ServerSocket
- A + B Problem II(大数加法)
- snnu(1110) 传输网络 (并查集+路径压缩+离线操作 || 线段树)
- 根据微信号来抓取微信文章
- java基础入门-建立可以多客户端链接的ServerSocket
- 亿级Web系统搭建——单机到分布式集群[转]
- 关于python在cmd中输出中文乱码的问题
- android 关于Make sure the plugin is properly configured问题的解决办法
- Openmpi安装
- JVM 进阶 一
- 实习记录
- Realflow制作融化特效
- 【HDOJ 5288】OO’s Sequence
- DOM简要
- 简单研究Android View绘制一 测量过程
- 五大常用算法之二:动态规划算法