摘要:
好文章 #include<bits/stdc++.h> using namespace std; const int N = 10010, M = 50010; int n, m; int h[N], e[M], ne[M], idx; int dfn[N], low[N], timestamp; 阅读全文
摘要:
ST表 ST表是一种解决RMQ问题的强有力工具, 可以做到O(nlogn)预处理,O(1)查询。 st[i][j] 表示区间 [i, i + 2 ^ j - 1] 的最大值。 初值 st[i][0] = a[i]。 状态转移 st[i][j] = max(st[i][j - 1], st[i + 2 阅读全文
摘要:
###树状数组 树状数组是一种高效的对列表更新和求前缀和的结构 对于已经学过的前缀和(O(1)修改 O(n)查询),考虑维护一部分的区间和,修改时需要修改若干位置,查询时也需要查询若干位置,以此把修改和查询的代价平衡。 ###灵感 对于如何维护一部分区间,考虑每个整数为若干个 2 的幂的和,将每个前 阅读全文
摘要:
###对于string类型的有力工具 transform(s.begin(), s.end(), s.begin(),::tolower)大写转小写 transform(s.begin(), s.end(), s.begin(),::toupper)小写转大写 ###样例 洛谷P2264 #incl 阅读全文
摘要:
####前缀和是一种极其优秀的线性数据结构,也是一种重要的思想,它可以极大地降低区间查询的复杂度。 ####1、一维前缀和 预处理: for(int i = 1; i <= n; i++) sum[i] = sum[i - 1] + a[i]; 某子段和: sum[R] - sum[L - 1]; 阅读全文
摘要:
(1)如果是int数组,采用 memset(g, 0x7f, sizeof g) 可全部初始化为一个很大的数,采用 memset(g, 0xaf, sizeof g) 全部初始化为一个很小的数。 (2)如果是double数组,采用 memset(g, 127, sizeof g) 全部初始化为一个很 阅读全文
摘要:
引入 优先队列是一种特殊的队列,它的功能是——自动排序。 基本操作: q.size(); //返回q里元素个数 q.empty(); //返回q是否为空,空则返回1,否则返回0 q.push(k); //在q的末尾插入k q.pop(); //删掉q的第一个元素 q.top(); //返回q的第一个 阅读全文
摘要:
博弈论学习笔记 - One_Zzz の 小窝qwq - 洛谷博客 (luogu.com.cn) 阅读全文
摘要:
1.题目 题意很简单:输入n,枚举所有的a,b,使得 (1)满足a/b=n。 (2)满足a,b各个位上的数字不相同。 2.思路 (1)对于被除数,要满足各个位上的数字,显然最大枚举到987654321就可以。 (2)对于被除数,要枚举n的整数倍以减少枚举次数。 3.代码及实现 分析完这些,这个题的代 阅读全文