1731: 矩阵

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 600  Solved: 106

SubmitStatusWeb Board

Description

Input

Output

Sample Input

1
3 4 4
Q 1 1 1 1
Q 1 1 3 2
M 1 1 3
Q 1 1 3 4

Sample Output

2
21
55

HINT

Source

给定一个矩阵,和两种操作Q输出子矩阵的值,M改变一个位置的值,

朴素算法会TLE,采用容斥思想减少for的使用

1.1 1.2                      
                         
                         
                         
                                                (a-1,b-1 )                                     (a-1, d)                 
            (a,b)            
                         
                         
                                                   
                               
                         
          (c,b-1)         (c,d)    
                       

不难发现,使用SUM((a,b)->(c,d))=SUM((1,1)->(c,d))-SUM((1,1)->(c,b-1))-SUM((1,1)->(a-1,d))+SUM((1,1)->(a-1,b-1));

所以我们不妨使用一个矩阵dp[i][j]表示SUM((1,1)->(i,j));

这样Q时很方便就能输出结果,M时只要更改下此点往后所有的值即可;

代码:

#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
#define CIN(a) scanf("%d",&a)
int e[1005][1005],dp[1005][1005];
int main()
{
int n,m,t,i,j,Q;
char ch;
int t1,t2,t3,t4;
for(i=0;i<=100l;++i) dp[0][i]=0;
cin>>t;
while(t--){int tmp;
scanf("%d%d%d",&n,&m,&Q);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j) e[i][j]=i+j;
for(i=1;i<=n;++i){tmp=0;
for(j=1;j<=m;++j){
tmp+=e[i][j];
dp[i][j]=dp[i-1][j]+tmp;
}
}
while(Q--){
scanf(" %c%d%d%d",&ch,&t1,&t2,&t3);
if(ch=='M'){
for(i=t1;i<=n;++i)
for(j=t2;j<=m;++j)
dp[i][j]=dp[i][j]-e[t1][t2]+t3;
e[t1][t2]=t3;
}
else if(ch=='Q'){CIN(t4);
printf("%d\n",dp[t3][t4]+dp[t1-1][t2-1]-dp[t1-1][t4]-dp[t3][t2-1]);
}

}
}
return 0;
}

zzuli1731 矩阵(容斥)的更多相关文章

  1. HUST 1569(Burnside定理+容斥+数位dp+矩阵快速幂)

    传送门:Gift 题意:由n(n<=1e9)个珍珠构成的项链,珍珠包含幸运数字(有且仅由4或7组成),取区间[L,R]内的数字,相邻的数字不能相同,且旋转得到的相同的数列为一种,为最终能构成多少 ...

  2. bzoj 4596 [Shoi2016]黑暗前的幻想乡 矩阵树定理+容斥

    4596: [Shoi2016]黑暗前的幻想乡 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 559  Solved: 325[Submit][Sta ...

  3. 【LOJ#6072】苹果树(矩阵树定理,折半搜索,容斥)

    [LOJ#6072]苹果树(矩阵树定理,折半搜索,容斥) 题面 LOJ 题解 emmmm,这题似乎猫讲过一次... 显然先\(meet-in-the-middle\)搜索一下对于每个有用的苹果数量,满 ...

  4. [FJOI2017]矩阵填数——容斥

    参考:题解 P3813 [[FJOI2017]矩阵填数] 题目大意: 给定一个 h∗w 的矩阵,矩阵的行编号从上到下依次为 1...h ,列编号从左到右依次 1...w . 在这个矩阵中你需要在每个格 ...

  5. 【BZOJ4596】黑暗前的幻想乡(矩阵树定理,容斥)

    [BZOJ4596]黑暗前的幻想乡(矩阵树定理,容斥) 题面 BZOJ 有\(n\)个点,要求连出一棵生成树, 指定了一些边可以染成某种颜色,一共\(n-1\)种颜色, 求所有颜色都出现过的生成树方案 ...

  6. 洛谷P5206 [WC2019] 数树(生成函数+容斥+矩阵树)

    题面 传送门 前置芝士 矩阵树,基本容斥原理,生成函数,多项式\(\exp\) 题解 我也想哭了--orz rqy,orz shadowice 我们设\(T1,T2\)为两棵树,并定义一个权值函数\( ...

  7. 洛谷 P4336 黑暗前的幻想乡 —— 容斥+矩阵树定理

    题目:https://www.luogu.org/problemnew/show/P4336 当作考试题了,然而没想出来,呵呵. 其实不是二分图完美匹配方案数,而是矩阵树定理+容斥... 就是先放上所 ...

  8. 【bzoj4596】[Shoi2016]黑暗前的幻想乡 (矩阵树定理+容斥)

    Description 四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖怪涌入了幻想乡,扰乱了幻想乡昔日的秩序.但是幻想乡的建制派妖怪(人类)博丽灵梦和八云紫等人整日高谈所有妖怪平等 ...

  9. 【BZOJ4596】【Luogu P4336】 [SHOI2016]黑暗前的幻想乡 矩阵树定理,容斥

    同样是矩阵树定理的裸题.但是要解决它需要能够想到容斥才可以. \(20\)以内的数据范围一定要试试容斥的想法. #include <bits/stdc++.h> using namespa ...

随机推荐

  1. web前端----jQuery动画效果

    动画效果 // 基本 show([s,[e],[fn]]) hide([s,[e],[fn]]) toggle([s],[e],[fn]) // 滑动 slideDown([s],[e],[fn]) ...

  2. MySQL数据库----单表查询

    先创建表 #创建表 create table employee( id int not null unique auto_increment, name varchar(20) not null, s ...

  3. mongodb 最佳可视化工具mongobooster

    最好用的mongodb GUI工具 mongobooster,没有之一,可从https://mongobooster.com/下载 常见管理命令可参考,http://www.cnblogs.com/l ...

  4. powershell配置Gvim

    1.下载安装Gvim 我的安装目录在:C:\gVimPortable 配色方案目录:C:\gVimPortable\App\vim\vim72\colors 配置文件目录:C:\gVimPortabl ...

  5. 使用 Vue.js 结合bootstrap 实现的分页控件

    原文链接:http://blog.csdn.net/qiuhaotc/article/details/53031884 源码下载: http://pan.baidu.com/s/1i4XgH6H 密码 ...

  6. vijos & codevs 能量项链 - 动态规划

    描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于 ...

  7. 使用Oracle执行计划分析SQL性能

    执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述.即就是对一个查询任务,做出一份怎样去完成任务的详细方案. 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的 ...

  8. 在Android studio中到入Eclipse

    由于无法在AS中直接导入Eclipse的原始包,所以需要先把Eclipse的包导出成Gradle包,这个Gradle包可以别两个环境识别. 1.在Eclipse中导出Gradle包.选择需要从Ecli ...

  9. ASP.NET Web API 2入门

    1.全局配置 Web API 2之前是这样的配置的: protected void Application_Start() { //未实现特性路由 WebApiConfig.Register(Glob ...

  10. 05_Kafka Python_Consumer模拟

    Python客户端:  Kafka-python 安装:  pip install kafka-python Consumer端模拟代码 """ Kafka Consum ...