LOJ P10118 打鼹鼠 题解
每日一题 day17 打卡
Analysis
二维树状数组的单点修改和区间查询,和一维的差不多
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define int long long
#define maxn 4096+10
#define INF 2147483647/2-1
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(int x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int n,m;
int tree[maxn][maxn];
inline int lowbit(int num)
{
return num&-num;
}
inline void build(int sx,int sy,int num)
{
for(int i=sx;i<=n;i+=lowbit(i))
for(int j=sy;j<=m;j+=lowbit(j))
tree[i][j]+=num;
}
inline int ask(int sx,int sy)
{
int ans=;
for(int i=sx;i>=;i-=lowbit(i))
for(int j=sy;j>=;j-=lowbit(j))
ans+=tree[i][j];
return ans;
}
signed main()
{
n=read();m=read();
int in=;
while(scanf("%d",&in)!=EOF)
{
if(in==)
{
int x=read(),y=read(),k=read();
build(x,y,k);
}
if(in==)
{
int a=read(),b=read(),c=read(),d=read();
write(ask(c,d)-ask(a-,b-));
printf("\n");
}
}
return ;
}
请各位大佬斧正(反正我不认识斧正是什么意思)
LOJ P10118 打鼹鼠 题解的更多相关文章
- 洛谷 P4248 / loj 2377 [AHOI2013] 差异 题解【后缀自动机】【树形DP】
可能是一个 SAM 常用技巧?感觉 SAM 的基础题好多啊.. 题目描述 给定一个长度为 \(n\) 的字符串 \(S\) ,令 \(T_i\) 表示它从第 \(i\) 个字符开始的后缀,求: \[ ...
- 洛谷 P3975 / loj 2102 [TJOI2015] 弦论 题解【后缀自动机】【拓扑排序】
后缀自动机入门. 题目描述 为了提高智商,ZJY 开始学习弦论. 这一天,她在<String theory>中看到了这样一道问题:对于一个给定的长度为 \(n\) 的字符串,求出它的第 \ ...
- LOJ P10008 家庭作业 题解
每日一题 day45 打卡 Analysis 这道题跟LOJ P10004 一样,但是数据范围不同,不允许O(n²) 的贪心算法通过. 我们可以加一个limit 来判断这个截止期限已经不行了,所以以后 ...
- LOJ P10022 埃及分数 题解
每日一题 day62 打卡 Analysis 这道题一看感觉很像搜索,但是每次枚举x∈(1,10000000)作为分母显然太蠢了. 所以我们要想办法优化代码. 优化一:迭代加深 优化二: 我们确定了搜 ...
- LOJ P10117 简单题 题解
每日一题 day15 打卡 Analysis 树状数组 用树状数组来维护每个字符变化的次数,如果是偶数就是0,奇数就是1 #include<iostream> #include<cs ...
- LOJ P10116 清点人数 题解
每日一题 day13 打卡 Analysis 用简单的树状数组维护单点修改和查询就行了 #include<iostream> #include<cstdio> #include ...
- LOJ P10150 括号配对 题解
Analysis 区间dp裸题 初始化有点麻烦 i,j能匹配时要特判 #include<iostream> #include<cstdio> #include<cstri ...
- LOJ P10148 能量项链 题解
Analysis 区间dp裸题,因为是环所以存两次 #include<iostream> #include<cstdio> #include<cstring> #i ...
- LOJ P10147 石子合并 题解
Analysis 区间dp+前缀和 #include<iostream> #include<cstdio> #include<cstring> #include&l ...
随机推荐
- jquery根据html()的内容来选择
<ul><li>First</li><li>http://www.hfxskyyj.com/</li></ul> 如上,如何选中 ...
- Linux 安装部署 Redis
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- wx.request 请求
wx.request 1.wx.request相当于ajax请求,和django后台进行交互 官方文档:https://developers.weixin.qq.com/miniprogram/dev ...
- Spring Cloud Alibaba学习笔记(7) - Sentinel规则持久化及生产环境使用
Sentinel 控制台 需要具备下面几个特性: 规则管理及推送,集中管理和推送规则.sentinel-core 提供 API 和扩展接口来接收信息.开发者需要根据自己的环境,选取一个可靠的推送规则方 ...
- sqlserver2008+日志收缩sql语句命令
USE[master] GO ALTER DATABASE 数据库 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 数据库 SET RECOVER ...
- werkzeug/routing.py-Map()源码解析
Map类主要用来存储所有的url规则和一些配置参数的.其中有一些配置的值只存储在Map实例里,因为这些值影响着所有的规则,还有一些其他的默认规则可以被重写. 通过之前分析的add_url_rule源码 ...
- vue实现组件切换的两种方式
<!DOCTYPE html> <html> <head> <title>组件的切换</title> <meta charset=&q ...
- 将网址url中的参数转化为JSON格式的两种方法
在我们进入主题前,我先先看下获取网址URL的方法: window.location.href // 设置或获取整个URL为字符串 window.location.hash // 设置或获取href属性 ...
- iOS开发微信支付的介绍与实现
1.前期准备 1) 到微信开放平台注册账号 需要登录邮箱验证 填写您的商户信息 2) 进入管理中心 --- 移动应用 --- 创建移动应用 --- 根据页面完善应用资料 3) 审核过后,通过应用详情页 ...
- Linux开机自动启动服务
当我们的Linux,关机后,或者重启后,有些服务需要人工启动才能有.为了解决这个问题,我找了一个办法,用一个脚本,开机启动想启动的服务. 方法一:(强烈推荐) 1.写一个脚本auto.sh vim ...