- 博客(21)
- 收藏
- 关注
原创 jiedai算法模板合集(正在肝2021.8.15)
基础模板常用板子#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef double db;template<class T>inline void MAX(T &x,T y){if(y>x)x=y;}template<class T>inline void MIN(T &x,T y){if(y<x)x=y;}template<clas
2020-09-14 00:02:51 12831 4
原创 一维/二维树状数组的各种用法
树状数组一维树状数组用法一:单点修改,区间查询单点修改:add(bit,x,v)区间查询:query(bit,r)-query(bit,l-1)用法二:区间修改,单点查询区间修改:add(bit,l,v),add(bit,r+1,-v)单点查询:query(bit,x)int limit;//树状数组下标的上界void add(ll *bit,int x,ll v){ while(x<=limit)bit[x]+=v,x+=x&-x;}ll query(ll *bit,
2021-03-09 14:43:01 124
原创 二次离线莫队算法
二次离线莫队算法可以计算区间中满足某种条件的点对的数量,例如P5047题意:给定一个长度为n的序列 m次查询 求区间[L,R]中逆序对的数量分析:如果直接用普通莫队做这道题的话,每次移动都要在树状数组上修改和查询,复杂度为 O(nnlogn)O(n\sqrt{n}logn)O(nnlogn)记 ([l1,r1],[l2,r2])([l1,r1],[l2,r2])([l1,r1],[l2,r2]) 表示一个点在 [l1,r1][l1,r1][l1,r1] 中另外一点在 [l2,r2][l2,r2][l
2021-03-08 01:14:33 918
原创 Data structure [树链剖分] [莫队] [分块]
链接2020牛客暑期多校训练营(第六场)https://ac.nowcoder.com/acm/contest/5671/D题意给定一个大小为 nnn 的树, mmm 次询问,查询 xxx 的子树内编号在 [l,r][l,r][l,r] 内 lca=xlca=xlca=x 的点对数。n,m≤200000n,m≤200000n,m≤200000分析问题可以转化为,查询 xxx 的子树内在 [l,r][l,r][l,r] 内的点对数,减去 xxx 的每个儿子的子树在 [l,r][l,r][l,r]
2020-08-02 18:32:53 152
原创 Function [容斥原理]
链接2020 年百度之星·程序设计大赛 - 初赛一DHOJ6750http://acm.hdu.edu.cn/showproblem.php?pid=6750题意令f(n)=∑i∣n,gcd(i,ni)=1if(n)=\sum\limits_{i|n,gcd(i,\frac{n}{i})=1}^{}{i}f(n)=i∣n,gcd(i,in)=1∑i求S(n)=f(1)+f(2)+...+f(n)S(n)=f(1)+f(2)+...+f(n)S(n)=f(1)+f(2)+...+f(n)n≤
2020-07-20 23:23:51 139
原创 糖果公园 [树上带修莫队]
链接https://uoj.ac/problem/58题意nnn个节点的树,mmm种颜色,qqq个询问。树上每个节点有一个颜色,每种颜色有一个权值。第iii次遍历到某种颜色的点,该点的价值乘上对应的数值。需要支持两种操作:000 xxx yyy : 把xxx点的颜色改为yyy111 xxx yyy : 查询遍历xxx到yyy路径的总价值。分析用树的括号序将查询的一条链转换成括号序列上的一个区间,再在括号序列上利用带修莫队求解。将链转换成区间处理出树的括号序,在对树进行 dfsdfsd
2020-07-17 16:01:01 141
原创 hash表实现map
学习链接https://oi-wiki.org/ds/hash/例题链接https://www.luogu.com.cn/problem/P4305代码STL版本:unordered_map<int,int>mp;手写版本:const int SIZE=2e5+5;struct hash_map{ int tot,head[SIZE],key[SIZE],value[SIZE],nxt[SIZE]; int Hash(int x){ if(x<0)x=-x;
2020-07-15 16:18:53 166
原创 双栈模拟队列
学习链接https://oi-wiki.org/ds/queue例题链接https://loj.ac/problem/6515题意代码#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef double db;template<class T>inline void MAX(T &x,T y){if(y>x)x=y;}template<class T&g
2020-07-11 11:18:40 297
原创 数颜色 [带修莫队]
链接https://www.luogu.org/problem/P1903题意给定一个长度为n的序列,m次操作。需要支持两种操作:1:把位置i上的数修改为v(从1开始编号)。2:查询[L,R]内有多少种不同的数。分析这是一道带修莫队的模板题。每个查询操作除了有左端点l和右端点r,还有一个时间t,表示这个查询在第t个修改操作之后。将这些查询(l,r,t)进行排序,以l/S为第一关...
2019-11-15 22:07:06 131
原创 stars [四维偏序] [CDQ套CDQ] [树状数组]
链接HDU 5126http://acm.hdu.edu.cn/showproblem.php?pid=5126题意依次进行q次操作。操作 1 a b c : 向集合中加入三元组(a,b,c)。操作 2 a1 b1 c1 a2 b2 c2 : 查询集合中有多少个三元组(a,b,c)满足a1<=a<=a2, b1<=b<=b2, c1<=c<=c2。...
2019-11-14 19:24:24 244
原创 Game With String [思维题]
链接http://codeforces.com/contest/1221/problem/E题意给定一个只包含’.‘和’X’的字符串,两个人轮流对字符串进行操作。先手方选择一段连续的a个’.’,将其变成’X’,后手方选择一段连续的b个’.’,将其变成’X’。无法操作的人输掉游戏,问先手方是否存在必胜策略。a>=b,n<=300000分析先处理出所有连续的’.'子串,可以得到...
2019-09-25 00:29:29 180
原创 Road Construction [几何]
链接https://ac.nowcoder.com/acm/contest/890/G题意平面上有有n个点,给出每个点的下标(Xi,Yi),让你用一条线将n个点分成个数相等的两份,使得所有点到线的距离的最小值最大。1≤n≤300,∣x∣,∣y∣≤10610^6106分析最优的直线一定平行或垂直于两个点的连线。枚举最优直线斜率(最多有n2n^2n2个),然后用nth-element找到...
2019-08-18 16:09:25 758
原创 The power of Fibonacci [中国剩余定理+循环节]
链接https://ac.nowcoder.com/acm/contest/889/A题意给定n,m,求斐波拉契数列的m次方的前n项和,答案对10910^9109取模。
2019-08-16 13:58:17 342 2
原创 C++的进阶用法
C++的进阶用法加速cin和coutList的使用定义定义和初始化加速cin和cout一般情况下,cin和cout的速度会比scanf和printf的速度慢3倍左右。其实,cin和cout慢是有原因的。默认情况下,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱。正因为这个兼容性的特性,导致cin有...
2019-07-26 19:00:17 188
原创 一些想法题
例一:Longest Subarray [线段树] HDOJ 6602例二:Snowy Smile [线段树] HDOJ 6638例三:Final Exam [想法题] HDOJ 6651
2019-07-24 20:48:39 183
原创 用C++写的推箱子小游戏2.2(支持步数显示,回撤,穿墙,闯关,输入等功能)
用C++写的推箱子游戏2.2推箱子游戏支持回滚,步数显示,回撤,穿墙,闯关,输入等操作。含控制台上运行的代码。
2016-09-03 19:47:44 6119 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人