牛客国庆集训派对Day2
题目链接:https://www.nowcoder.com/acm/contest/202/A
A
题意:给出最大4096*64和64*4096的矩阵,其中有一个矩阵只含有0和1,问你它们相乘所得到得矩阵所有元素异或
思路:一开始我想到的是能不能将01矩阵的一排都用二进制表示,但是发现2的64次方大于4096,反而增大了复杂度,于是没有做出这题,题解是将矩阵分块,最多分成8块,这样01矩阵的种数有255种,然后再暴力求解,看起来很难写,但是捋清楚思路和写法,这题不难写
#include <cstdio>
#include <iostream>
#include <cstring>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <stack>
#include <algorithm>
#include <map>
#include <queue>
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()
{
int n,p,m;
cin>>n>>p>>m;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=p; j++)
{
string a;
cin>>a;
int l=1;
for(int k=a.size()-1; k>=0; k--)
{
if(a[k]>='0'&&a[k]<='9')
A[i][j]+=(a[k]-'0')*l;
else A[i][j]+=(a[k]-'A'+10)*l;
l*=16;
}
// cout<<A[i][j]<<endl;
}
}
for(int i=1; i<=m; i++)
{
for(int j=1; j<=p; j++)
{
scanf("%1d",&B[i][j]);
}
}
int len=p/8+(p%8!=0);
// cout<<len<<endl;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=len; j++)
{
for(int k=0; k<(1<<8); k++)
{
for(int t=0; t<8; t++)
{
if(k&(1<<t))de[i][j][k]+=A[i][t+1+(j-1)*8];
}
}
}
}
int ans=0;
for(int nn=1; nn<=n; nn++)
{
for(int i=1; i<=m; i++)
{
int d=0;
for(int j=1; j<=len; j++)
{
int g=0;
for(int k=1; k<=8; k++)
{
g+=B[i][(j-1)*8+k]*(1LL<<(k-1));
}
// cout<<g<<endl;
// cout<<g<<endl;
d+=de[nn][j][g];
}
//cout<<d<<endl;
ans^=d;
// cout<<ans<<endl;
}
}
printf("%d\n",ans);
return 0;
}
牛客国庆集训派对Day2的更多相关文章
- 牛客国庆集训派对Day2 Solution
A 矩阵乘法 思路: 1° 牛客机器太快了,暴力能过. #include <bits/stdc++.h> using namespace std; #define N 5000 in ...
- 牛客国庆集训派对Day2 H 期望
小贝喜欢玩卡牌游戏.某个游戏体系中共有N种卡牌,其中M种是稀有的.小贝每次和电脑对决获胜之后都会有一个抽卡机会,这时系统会随机从N种卡中选择一张给小贝.普通卡可能多次出现,而稀有卡牌不会被重复抽到.小 ...
- 牛客国庆集训派对Day2 F、平衡二叉树 【构造+记忆化搜索】
任意门:https://www.nowcoder.com/acm/contest/202/F 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 1048576K,其他语言2097152K6 ...
- 图论+思维(2019牛客国庆集训派对day2)
题意:https://ac.nowcoder.com/acm/contest/1107/J n个点的完全图编号0-n-1,第i个点的权值为2^i,原先是先手选取一些边,然后后手选取一些点,满足先手选取 ...
- 2019牛客国庆集训派对day2
A(模拟): #include <bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; const double ...
- 牛客国庆集训派对Day6 A Birthday 费用流
牛客国庆集训派对Day6 A Birthday:https://www.nowcoder.com/acm/contest/206/A 题意: 恬恬的生日临近了.宇扬给她准备了一个蛋糕. 正如往常一样, ...
- 2019牛客国庆集训派对day5
2019牛客国庆集训派对day5 I.Strange Prime 题意 \(P=1e10+19\),求\(\sum x[i] mod P = 0\)的方案数,其中\(0 \leq x[i] < ...
- 牛客国庆集训派对Day1 L-New Game!(最短路)
链接:https://www.nowcoder.com/acm/contest/201/L 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...
- 牛客国庆集训派对Day4 J-寻找复读机
链接:https://www.nowcoder.com/acm/contest/204/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...
随机推荐
- SQL Server的实例恢复解析
同Oracle一样,SQL Server在非一致性关闭的时候也会进行实例恢复(Instance Recovery),本文根据stack overflow的文章介绍一些SQL Server实例恢复的知识 ...
- Python 输出格式符号
Python 常见的输出格式符号
- 【PAT】B1012 数字分类
注意逻辑的描述,只要认真看题,就能做对,如果自己结果一直不正确,请仔细推一下样例结果 #include<stdio.h> int arr[1005]; int main(){ int N, ...
- 自定义实现HashMap的put、get方法
public class HashMap{ public static void main(String[] args){ put("aa", "wo ai ni&quo ...
- 使用Razor Generator构建模块化ASP.NET MVC应用程序
在构建Web应用程序的时候,我们很难做到模块化的开发,这是因为Web应用程序不仅仅包含编译的C#代码,还包含了js.css和aspx等资源. 在ASP.NET MVC中,我们发布应用程序的时候,还会包 ...
- C#基础知识之String,Stringbuilder和Stringbuffer
String可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了存储数值不可改变的字符串. StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义 ...
- hover效果的几种方式
1.改变透明度 #share_wrap a{display: inline-block;width: 48px;height: 44px;background: url(/images/finance ...
- nginx入门与实战
网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web 网络服务是一种被动访问 ...
- 启动线程用start方法
启动线程用start方法而不是用run方法 public static void main(String[] args) { Thread t=new Thread("Thread-TEST ...
- Echarts 报错:Uncaught Error: [MODULE_MISS]"echarts/config" is not exists!
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 问题: 报错:Uncaught Error: [MODULE_MISS]" ...