线段树
丶沙鸥
这个作者很懒,什么都没留下…
展开
-
“红旗杯”第十五届东北地区大学生程序设计竞赛 D - Lowbit
原题链接题意:n个数,m次操作。操作1:给l,r之间的数加上一个自身的lowbit(二进制下的最低位)。操作2:查询l,r区间和。思路:可以发现进行操作1只有两种情况。1.如果这个数是2的倍数,那么进行操作1只需要*2就可以了。2.如果这个数不是2的倍数,那么就是最低位往左移一位。根据题目中a[i]的范围可以知道一个数最多只能进行15次第二种情况的操作,就是10101010101010101这样的形式的时候。所以可以对不是2的倍数的值进行暴力单点修改,当一个区间内的值都是2的倍数的时候再原创 2021-09-04 18:40:00 · 558 阅读 · 0 评论 -
hdu6992 Lawn of the Dead 查询区间会变的线段树小变形
原题链接题意:n*m的棋盘,k个地雷,从(1,1)开始走,只能走右下两个方向,显然地雷不能走,问能到达的格子数思路:两棵线段树维护一下上一次层能到的区间,然后根据这一层的地雷位置推出理论上能到的区间,再更新这一层实际能到的区间。#include<bits/stdc++.h>#define LL long long#define INF INT64_MAX#define MOD 1000000007#define stree SegTree[f][root]#define ls原创 2021-08-27 16:56:13 · 116 阅读 · 0 评论