bzoj2973石头游戏——矩阵乘法
题目:权限题!
写了一下,但提交不了,先放着吧。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,num[][],ct,w[],q,r,T;
char c[][];
struct Matrix{
int a[][];
Matrix operator * (const Matrix &y) const
{
Matrix x;
memset(x.a,,sizeof x.a);
for(int i=;i<=ct;i++)
for(int k=;k<=ct;k++)
for(int j=;j<=ct;j++)
x.a[i][j]+=a[i][k]*y.a[k][j];
return x;
}
}s[],ans,ss,ss2;
void init()
{
ans.a[][]=;//ans使用第一行
for(int t=;t<=;t++)
{
s[t].a[][]=;//!
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
int k=num[i][j];
char cc=c[k][w[k]];
if(cc>=''&&cc<='')s[t].a[][k]=cc-'';
if(cc=='N'&&i>)s[t].a[k][num[i-][j]]=;
if(cc=='W'&&j>)s[t].a[k][num[i][j-]]=;
if(cc=='S'&&i<n)s[t].a[k][num[i+][j]]=;
if(cc=='E'&&j<m)s[t].a[k][num[i][j+]]=;
if(w[k]==strlen(c[k])-)w[k]=;
else w[k]++;
}
}
}
int main()
{
scanf("%d%d%d",&n,&m,&T);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
num[i][j]=++ct;
cin>>c[ct];
}
init();
q=T/;r=T%;
if(q)
{
for(int i=;i<=ct;i++)ss.a[i][i]=;
for(int i=;i<=;i++)
ss=ss*s[i];
}
if(r)
{
for(int i=;i<=ct;i++)ss2.a[i][i]=;
for(int i=;i<=r;i++)
ss2=ss2*s[i];
}
ans=ans*ss;
ans=ans*ss2;
int mx=;
for(int i=;i<=ct;i++)
mx=max(mx,ans.a[][i]);
printf("%d",mx);
return ;
}
bzoj2973石头游戏——矩阵乘法的更多相关文章
- 【BZOJ2973】石头游戏 矩阵乘法
[BZOJ2973]石头游戏 Description 石头游戏的规则是这样的. 石头游戏在一个n行m列的方格阵上进行.每个格子对应了一个编号在0~9之间的操作序列. 操作序列是一个长度不超过6且循环执 ...
- AcWing 206. 石头游戏 矩阵乘法|矩阵快速幂
AcWing 206. 石头游戏 石头游戏在一个 n 行 m 列 (1≤n,m≤8) 的网格上进行,每个格子对应一种操作序列,操作序列至多有10种,分别用0~9这10个数字指明. 操作序列是一个长度不 ...
- bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化
3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 613 Solved: 256[Submit][Status] ...
- CH 3401 - 石头游戏 - [矩阵快速幂加速递推]
题目链接:传送门 描述石头游戏在一个 $n$ 行 $m$ 列 ($1 \le n,m \le 8$) 的网格上进行,每个格子对应一种操作序列,操作序列至多有 $10$ 种,分别用 $0 \sim 9$ ...
- BZOJ2973 : 石头游戏
考虑到$lcm(1,2,3,4,5,6)=60$,所以操作序列每60秒一个循环. 将操作表示成转移矩阵的形式,预处理出前60秒的转移矩阵以及它们的乘积$B$. 那么t秒的转移矩阵为前$t\bmod 6 ...
- CH3401 石头游戏(矩阵快速幂加速递推)
题目链接:传送门 题目: 石头游戏 0x30「数学知识」例题 描述 石头游戏在一个 n 行 m 列 (≤n,m≤) 的网格上进行,每个格子对应一种操作序列,操作序列至多有10种,分别用0~9这10个数 ...
- 【bzoj3240 && 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法……然而我太弱了,一开始只想到了矩阵乘法的 ...
- 【bzoj1444】[Jsoi2009]有趣的游戏 AC自动机+矩阵乘法
题目描述 输入 注意 是0<=P 输出 样例输入 样例输出 题解 AC自动机+矩阵乘法 先将所有字符串放到AC自动机中,求出Trie图. 然后构建邻接矩阵:如果x不是某个字符串的末位置,则x连向 ...
- BZOJ 1444 [JSOI2009]有趣的游戏 (AC自动机、概率与期望DP、矩阵乘法)
诶这题洛谷居然没有??? 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1444 题解: 我见到主要有三种做法. 一是矩阵乘法.设\(d ...
随机推荐
- 四则运算表达式树 C++模板 支持括号和未知数
首先允许我吐槽CSDN的MARKDOWN,简直难用的不行. 程序的原理是将表达式分治转换为二叉树,再在二叉树上递归计算结果.如同以下表达式:x+5*y-(6/(1-5.5))可以表达为以下二叉树(抱歉 ...
- 洛谷P1865 A % B Problem
1.洛谷P1865 A % B Problem 题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行 ...
- All you need to know about SYN floods
http://blog.dubbelboer.com/ Date: 09 Apr 2012Author: Erik Dubbelboer SYN cookies So one day I notice ...
- VS2017不能生成Database Unit Test项目
问题描述: VS2017生成Database Unit Test项目时,报出如下错误,但该项目在VS2015中能正常生成: 主要是因为下面两个程序集找不到引用: Microsoft.Data.Tool ...
- 用JS过滤Emoji表情的输入
本文为原创,转载请注明出处: cnzt 文章:cnzt-p http://www.cnblogs.com/zt-blog/p/6773854.html 在前端页面开发过程中,总会碰到不允许 ...
- SpringMVC拦截器详解[附带源码分析](转)
本文转自http://www.cnblogs.com/fangjian0423/p/springMVC-interceptor.html 感谢作者 目录 前言 重要接口及类介绍 源码分析 拦截器的配置 ...
- webstorm bable
一.设置npm源 1.得到原本的镜像地址 npm get registry > https://registry.npmjs.org/ 设成淘宝的 npm config set registry ...
- 自动化运维工具Fabric - 密码管理(env.password and ssh key)
在使用 Fabric 的过程中,如果大批量服务器处理的话,我们就需要针对配置主机的密码,每台主机的密码相同还好,不同的话,就需要针对不同的主机做配置了,以下有两种配置方式 注:本文主要参考官方文档 P ...
- BZOJ 3363 POJ 1985 Cow Marathon 树的直径
题目大意:给出一棵树.求两点间的最长距离. 思路:裸地树的直径.两次BFS,第一次随便找一个点宽搜.然后用上次宽搜时最远的点在宽搜.得到的最长距离就是树的直径. CODE: #include < ...
- 2.6.2 用NPOI操作EXCEL--设置密码才可以修改单元格内容
2.6.2 用NPOI操作EXCEL--设置密码 有时,我们可能需要某些单元格只读,如在做模板时,模板中的数据是不能随意让别人改的.在Excel中,可以通过“审阅->保护工作表”来完 ...