假设$C=AB$, 那么答案就为

$\begin{align} \notag ans & =\sum\limits_{i=0}^{n-1}\sum\limits_{j=0}^{n-1}C[i][j]p^{(n-i)n-1-j} \\ \notag & =  \sum\limits_{i=0}^{n-1}\sum\limits_{j=0}^{n-1}\sum\limits_{k=0}^{n-1}A[i][k]B[k][j]p^{(n-i)n-1-j} \\ & = \sum\limits_{k=0}^{n-1}\Big(\sum\limits_{i=0}^{n-1}A[i][k]p^{(n-i)n-1}\Big)\Big(\sum\limits_{j=0}^{n-1}B[k][j]p^{-j}\Big) \notag \end{align}$

#include <iostream>
#include <sstream>
#include <algorithm>
#include <cstdio>
#include <math.h>
#include <set>
#include <map>
#include <queue>
#include <string>
#include <string.h>
#include <bitset>
#define REP(i,a,n) for(int i=a;i<=n;++i)
#define PER(i,a,n) for(int i=n;i>=a;--i)
#define hr putchar(10)
#define pb push_back
#define lc (o<<1)
#define rc (lc|1)
#define mid ((l+r)>>1)
#define ls lc,l,mid
#define rs rc,mid+1,r
#define x first
#define y second
#define io std::ios::sync_with_stdio(false)
#define endl '\n'
#define DB(a) ({REP(__i,1,n) cout<<a[__i]<<' ';hr;})
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int P = 1e9+7, P2 = 998244353, INF = 0x3f3f3f3f;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
ll qpow(ll a,ll n) {ll r=1%P;for (a%=P;n;a=a*a%P,n>>=1)if(n&1)r=r*a%P;return r;}
ll inv(ll x){return x<=1?1:inv(P%x)*(P-P/x)%P;}
inline int rd() {int x=0;char p=getchar();while(p<'0'||p>'9')p=getchar();while(p>='0'&&p<='9')x=x*10+p-'0',p=getchar();return x;}
//head int n, Aa, Ab, Ac, Ad, Ba, Bb, Bc, Bd, p;
uint32_t x, y, z, w;
uint32_t xorshift() {
uint32_t t = x;
t ^= t << 11;
t ^= t >> 8;
x = y; y = z; z = w;
w ^= w >> 19;
w ^= t;
return w & ((1 << 24) - 1);
}
void get(uint32_t a, uint32_t b, uint32_t c, uint32_t d) {
x = a; y = b; z = c; w = d;
} const int N = 7e3+10;
int f1[N], f2[N], g1[N], g2[N];
int main() {
scanf("%d%d%d%d%d%d%d%d%d%d", &n, &Aa, &Ab, &Ac, &Ad, &Ba, &Bb, &Bc, &Bd, &p);
int w1 = inv(qpow(p,n)), w2 = inv(p);
int r1 = qpow(p,n*n-1), r2 = 1;
REP(i,0,n-1) {
f1[i]=r1,r1=(ll)r1*w1%P;
f2[i]=r2,r2=(ll)r2*w2%P;
}
get(Aa,Ab,Ac,Ad);
REP(i,0,n-1) REP(j,0,n-1) {
g1[j] = (g1[j]+(ll)xorshift()*f1[i])%P;
}
get(Ba,Bb,Bc,Bd);
REP(i,0,n-1) REP(j,0,n-1) {
g2[i] = (g2[i]+(ll)xorshift()*f2[j])%P;
}
int ans = 0;
REP(i,0,n-1) ans = (ans+(ll)g1[i]*g2[i])%P;
if (ans<0) ans += P;
printf("%d\n", ans);
}

牛客 110D 矩阵的更多相关文章

  1. 牛客网挑战赛19 B,C,F

    链接:https://www.nowcoder.com/acm/contest/131/B来源:牛客网 矩阵 M 包含 R 行 C 列,第 i 行第 j 列的值为 Mi,j. 请寻找一个子矩阵,使得这 ...

  2. 牛客练习赛1 A - 矩阵

    链接:https://www.nowcoder.com/acm/contest/2/A来源:牛客网 题目描述 给出一个n * m的矩阵.让你从中发现一个最大的正方形.使得这样子的正方形在矩阵中出现了至 ...

  3. 牛客小白月赛16 E 小雨的矩阵 ( 暴搜)

    链接:https://ac.nowcoder.com/acm/contest/949/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  4. 顺时针打印矩阵 牛客网 剑指Offer

    顺时针打印矩阵 牛客网 剑指Offer 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 ...

  5. 矩阵中的路径 牛客网 剑指Offer

    矩阵中的路径 牛客网 剑指Offer 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下 ...

  6. 2018牛客网暑期ACM多校训练营(第二场)J Farm(树状数组)

    题意 n*m的农场有若干种不同种类作物,如果作物接受了不同种类的肥料就会枯萎.现在进行t次施肥,每次对一个矩形区域施某种类的肥料.问最后枯萎的作物是多少. 分析 作者:xseventh链接:https ...

  7. 2018牛客网暑期ACM多校训练营(第一场)B Symmetric Matrix(思维+数列递推)

    题意 给出一个矩阵,矩阵每行的和必须为2,且是一个主对称矩阵.问你大小为n的这样的合法矩阵有多少个. 分析 作者:美食不可负064链接:https://www.nowcoder.com/discuss ...

  8. 牛客OI赛制测试赛2

    A题: https://www.nowcoder.com/acm/contest/185/A 链接:https://www.nowcoder.com/acm/contest/185/A来源:牛客网 题 ...

  9. 【转自牛客网】C++类职位校招

    作者:./a.out链接:https://www.nowcoder.com/discuss/14022来源:牛客网 话说在牛客网上混迹了半年,也没啥拿的出手的贡献.现在基本上自己的校招生涯要告一段落, ...

随机推荐

  1. win 内网frp反弹到内网liunx

    前提:frp不同系统 但是版本必须完全相同 这是我的两个版本 我这个就是验证frp可以在不同系统之间使用 准备工作 靶机 win2003 ip 192.168.1.132 公网 vps windows ...

  2. docker容器安装命令

    apt-get update apt-get install vim 转载请注明博客出处:http://www.cnblogs.com/cjh-notes/

  3. Linux设备驱动程序 之 并发及其管理

    竞态产生 Linux系统找那个存在大量的并发联系,因此会导致可能的竞态: 1. 正在运行的用户空间进程可以以多种组合方式访问我们的代码: 2. SMP系统甚至可以再不同的处理器上同时执行我们的代码: ...

  4. mybatis 批量将list数据插入到数据库

    随着业务需要,有时我们需要将数据批量添加到数据库,mybatis提供了将list集合循环添加到数据库的方法.具体实现代码如下: 1.mapper层中创建 insertForeach(List < ...

  5. ReSharper “Cannot resolve symbol” even when project builds

    ReSharper “Cannot resolve symbol” even when project builds   This worked for me (VS2012u4, R# 7.1.3) ...

  6. ssm整合的spring.xml文件配置(applicationContext.xml)

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  7. Redis 部署安装

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  8. 0-linux简介

    linux是什么? linux有什么用? linux学了能做什么? 潜台词:linux能找什么工作?有没有钱和前途? linux要学什么? 服务的安装,配置,维护 保障服务/系统/业务的稳定,能长期不 ...

  9. javaweb期末项目-stage1-part1-需求分析(Requirements analysis)

    需求分析文档.rar-下载 说明:解压密码为袁老师的全名拼音(全小写) 相关链接: 项目结构:https://www.cnblogs.com/formyfish/p/10828672.html 需求分 ...

  10. 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别(转载)

    转载来源:https://youzhixueyuan.com/the-difference-between-restful-soap-rpc-soa-and-micro-service.html 内容 ...