HZOJ 矩阵游戏
大水题一个,然而由于两颗线段树的阴影我死了……
算法一:对于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 矩阵游戏的更多相关文章
- ZJOI2007矩阵游戏
题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作: 行交 ...
- 【BZOJ】1059: [ZJOI2007]矩阵游戏(二分图匹配)
http://www.lydsy.com/JudgeOnline/problem.php?id=1059 本题可以看出,无论怎样变化,在同一行和同一列的数永远都不会分手---还是吐槽,,我第一眼yy了 ...
- 【BZOJ】【1059】【ZJOI2007】矩阵游戏
二分图完美匹配/匈牙利算法 如果a[i][j]为黑点,我们就连边 i->j ,然后跑二分图最大匹配,看是否有完美匹配. <_<我们先考虑行变换:对于第 i 行,如果它第 j 位是黑点 ...
- 1059: [ZJOI2007]矩阵游戏 - BZOJ
Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两 ...
- bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化
3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 613 Solved: 256[Submit][Status] ...
- bzoj 1059: [ZJOI2007]矩阵游戏 二分图匹配
1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1891 Solved: 919[Submit][Statu ...
- BZOJ 1059 矩阵游戏
Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个\(N \times N\)黑白方阵进行(如同国际象棋一般,只是颜色是随意的). ...
- BZOJ 1059 [ZJOI2007]矩阵游戏
1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2707 Solved: 1322[Submit][Stat ...
- bzoj 1059 [ZJOI2007]矩阵游戏(完美匹配)
1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2993 Solved: 1451[Submit][Stat ...
随机推荐
- springmvc java程序文件保存地址的路径问题
会保存为这种斜杠 不论之前填写的是什么样
- PHP快速导出Excel文件 (采用xlsx Writer)
<?php include_once("xlsxwriter.class.php"); ini_set('display_errors', 0); ini_set('log_ ...
- CURL POST PHP
function SendPostCurl($url,$post_data){ $curl = curl_init(); //初始化 curl_setopt($curl, CURLOPT_URL, $ ...
- 威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复
背景 近日,阿里云安全监测到watchbog挖矿木马使用新曝光的Nexus Repository Manager 3远程代码执行漏洞(CVE-2019-7238)进行攻击并挖矿的事件. 值得注意的是, ...
- Django项目:CRM(客户关系管理系统)--14--06PerfectCRM实现King_admin注册功能获取内存优化处理
<th >{% get_app_name admin_class.model %}{{ admin_class }} </th> #kingadmin_tags.py # —— ...
- arcgis图层控制
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 软工作业——Alpha版本第一周小结
姓名 学号 周前计划安排 每周实际工作记录 自我打分 zxl 061425 1.进行任务分析2.进行任务分配 1.对任务进行了初步的划分,但还为进行给模块间的联系2.给每人分配了任务3.负责扫码签到功 ...
- 获得CSM(Certified Scrum Master)-价值驱动交付。
2019年越来越多的企业开始实行敏捷转型,紧随时代潮流,学习最先进的科学管理方法,找到正确的人(团队),为企业交付高价值的产品服务. 导师Ethan ,培训的课程让人收益匪浅,活到老学到老,丰富的知识 ...
- Docker数据管理-数据卷 data volumes和数据卷容器data volumes containers的使用详解
此文来源于:https://yq.aliyun.com/ziliao/43471 参考原文件之外,做了些修改. Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录 ...
- 如何写JavaScript中的callback回调函数
如何写回调函数? 如果自己在写一个方法或函数,你有可能会遇到需要一个回调函数.下面就是一个简单的常见回调函数例子: function mySandwich(param1, param2, callba ...