大水题一个,然而由于两颗线段树的阴影我死了……

算法一:对于50%的数据: 送分,直接一个一个乘,时间复杂度O(KN)。

算法二:对于80%的数据:如果我们不一个一个乘,将第i行的和乘x ,第j列的和乘y ,所计算出的结果与正解不同的地方仅仅是(i,j)这一个元素。而这样的数不足K2个。所以我们把这些元素单独计算一遍就可以了,时间复杂度O(K2)。

算法三:对于100%的数据:设h[i]为第i行总共乘的数,l[j]表示第j列总共乘的数,根据题意map[i][j]=(i-1)*m+j,显然最后$ans=\sum\limits_{i=1}^{n} \sum \limits_{j=1}^{m} h[i]*l[j]*((i-1)*m+j)$,这样复杂度是O(nm)的,再把求和拆一下,ans=$\sum\limits_{i=1}^{n}$ h[i]*(∑l[j]*j)+$\sum\limits_{j=1}^{m}$ l[j]*(∑h[i]*(i-1)*m)这样复杂度就是O(m+n)的了。

 #include<iostream>
#include<cstdio>
#define LL long long
#define MAXN 1000010
#define mod 1000000007
using namespace std;
LL h[MAXN],l[MAXN];
int n,m,k;
char op;int x,y;
LL lj_j[MAXN],hi_i[MAXN];
signed main()
{
cin>>n>>m>>k;
for(int j=;j<=m;j++)l[j]=;
for(int i=;i<=n;i++)h[i]=;
for(int i=;i<=k;i++)
{
cin>>op>>x>>y;
if(op=='R')h[x]=h[x]*y%mod;
else l[x]=l[x]*y%mod;
}
LL sumj=,sumi=;
for(int j=;j<=m;j++)lj_j[j]=l[j]*j%mod,sumj=(sumj+lj_j[j])%mod;
for(int i=;i<=n;i++)hi_i[i]=h[i]*(i-)%mod*m%mod,sumi=(sumi+hi_i[i])%mod;
LL ans=;
for(int i=;i<=n;i++)ans=(ans+h[i]*sumj)%mod;
for(int j=;j<=m;j++)ans=(ans+l[j]*sumi)%mod;
printf("%lld\n",ans);
}

HZOJ 矩阵游戏的更多相关文章

  1. ZJOI2007矩阵游戏

    题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作: 行交 ...

  2. 【BZOJ】1059: [ZJOI2007]矩阵游戏(二分图匹配)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1059 本题可以看出,无论怎样变化,在同一行和同一列的数永远都不会分手---还是吐槽,,我第一眼yy了 ...

  3. 【BZOJ】【1059】【ZJOI2007】矩阵游戏

    二分图完美匹配/匈牙利算法 如果a[i][j]为黑点,我们就连边 i->j ,然后跑二分图最大匹配,看是否有完美匹配. <_<我们先考虑行变换:对于第 i 行,如果它第 j 位是黑点 ...

  4. 1059: [ZJOI2007]矩阵游戏 - BZOJ

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两 ...

  5. bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 613  Solved: 256[Submit][Status] ...

  6. bzoj 1059: [ZJOI2007]矩阵游戏 二分图匹配

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1891  Solved: 919[Submit][Statu ...

  7. BZOJ 1059 矩阵游戏

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个\(N \times N\)黑白方阵进行(如同国际象棋一般,只是颜色是随意的). ...

  8. BZOJ 1059 [ZJOI2007]矩阵游戏

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2707  Solved: 1322[Submit][Stat ...

  9. bzoj 1059 [ZJOI2007]矩阵游戏(完美匹配)

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2993  Solved: 1451[Submit][Stat ...

随机推荐

  1. 【python自动化学习笔记】

    [python自动化第一篇:python介绍与入门] [python自动化第二篇:python入门] [python自动化第三篇:python入门进阶]      [Python自动化第三篇(2):文 ...

  2. python基--re模块的使用

    正则表达式: 正则表达式本身是一种小型的.高度专业化的编程语言,然而在python中,通过内嵌集成re模块让调用者们可以直接调用来实现正则匹配.正则表达模式被变异成一系列的字节码,然后由C语言编写的 ...

  3. Zookeeper 扫盲

    Zookeeper 扫盲 :disappointed_relieved: 配置文件详解: tickTime:基本事件单元,以毫秒为单位,这个时间作为 Zookeeper 服务器之间或客户端之间维持心跳 ...

  4. 【CodeVS】1083 Cantor表

    1083 Cantor表 1999年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 现代数学的著名证明之 ...

  5. Leetcode686.Repeated String Match重复叠加字符串匹配

    给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1. 举个例子,A = "abcd",B = " ...

  6. (转)Sql server中 如何用sql语句创建视图

    1.视图的作用 视图的作用: 第一点:使用视图,可以定制用户数据,聚焦特定的数据. 解释:     在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话,     采购人员,可以需要一些与其 ...

  7. ubuntu安装django

    sudo apt-get install python-django -y#django操作mysql数据库时还需要安装python-mysqldb驱动,当然mysql安装是必须的前提 sudo ap ...

  8. Sublime Text编辑器运行Python程序控制台输入

    将文件保存为 .py后,安装插件: 1)按ctrl+shift+p快捷键呼出一个输入框,输入Install Package,回车,在新出现的输入框里输入“SublimeREPL”并安装. 2)点击To ...

  9. git解决冲突的最佳方法2

    1.冲突后和远程仓库的文件进行比对的时候,善于用上图所示的按钮,会提高效率 copy all-nonconflicting changes from right to left next differ ...

  10. log4j日志系统

    在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...