摘要:
题目链接:https://www.luogu.com.cn/problem/P3372 题目是经典的线段树模板题,要求支持三种操作:①、查询区间和取模的值 ②、给指定区间加上一个值 ③、给指定区间乘上一个值 只要明确先做乘标记在做加标记就解决了问题,因为先做加标记再做乘标记的话就会出现加标记是小数的 阅读全文
摘要:
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3973/ 题意是:给出一个模式串,再给出一些串组成一个集合,操作分为两种,一种是替换模式串中的一个字符,还有一种是查询模式串中[l,r]区间的字符串有没有出现在字符串集合中。 由于数据量很大,只能用O(nlogn) 阅读全文
摘要:
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/2795/ 题目大意:有一块长方形木板,从上到下被分成h*w的区域,现要将n个长条放进这些区域中,要求从上到下只要后面空余位置够就放,紧贴最左侧放置。由于给出长度为C的长条之后只要一个区间[l,r]的最大值大于等于C 阅读全文
摘要:
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef unsigned int ui; 4 typedef long long ll; 5 typedef unsigned long long ull; 6 #define pf pri 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1198 线段树的单点更新+区间查询,典型的求区间最大值。 代码如下: 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef unsigned int ui; 阅读全文
摘要:
简单的搜索,不必多说了,初始状态下每个点能到达的长度是1,它本身。还有,注意关掉文件重定向,被坑好多次了。 代码如下: 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 typedef unsigned int ui; 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1972 题意大致是:给定一个序列长度为n,给出m个查询区间,要求响应是区间内不同的数的个数。为此我们考虑到树状数组的区间查询时间复杂度是O(logn),对于题目1e6的数据O(mlogn)的复杂度是能过的。所以我们考虑用 阅读全文