- 博客(5)
- 收藏
- 关注
原创 学习笔记(数论)
CF1139D最后一个整除分块 + 前缀和 复杂度O( sqrt(m) )预处理O(m),所以没必要整除分块了~#include <bits/stdc++.h>#define ll long long#define endl '\n'using namespace std;const int maxn=1e5+5;const int mod=1e9+7;int prime[maxn],inv[maxn],mo[maxn],cnt=0;bool vis[maxn];vo
2020-09-29 13:41:10 125
原创 学习笔记(DP) 刷题日记
Codeforces 1268B贪心的思想,从右往左把每列都取完或剩下一个(取余2)。观察画图可以发现,若剩下一个的两列之间间隔列数为偶数的话,是可以通过最底下一行使得这两列剩下的那一个合并使得贡献加1。#include <bits/stdc++.h>#define ll long long#define endl '\n'using namespace std;const int maxn=3e5+5;stack <int> s;int main(){ ios:
2020-09-06 15:05:44 185
原创 学习笔记(DP)— 状压
状压DP练习1.SCOI2005互不侵犯dp[i][j][k]表示当前第i行,状态为j,已用k个国王的方案数其中j是一个二进制串,表示当前各个位置是否拜访国王枚举当前行与上一行,判断两行摆放的情况是否合法预处理:枚举单行情况,若没有2个相邻的1 ( i & (i << 1) == 0 ),则该情况合法,利用lowbit,计算出该种合法情况有几个国王(几个1),s数组用来存状态,sum数组用来存该状态1的个数#include <bits/stdc++.h>#def
2020-08-30 16:17:18 119
原创 学习笔记(DP)— 背包问题
[DP] 背包问题————————————————————————————————————注意枚举顺序!!for (int k = 1; k <= ts; k++) // 循环每一组 for (int i = m; i >= 0; i--) // 循环背包容量 for (int j = 1; j <= cnt[k]; j++) // 循环该组的每一个物品 if (i >= w[t[k][j]]) dp[
2020-08-29 17:04:49 134
原创 学习笔记(数据结构)— 主席树
**学习笔记-主席树**用途:查询区间第k大核心思想:前缀和,权值线段树过程(1)对于每一个点都建一颗权值线段树,表示到当前节点各个数出现了几次(2)每次查询两棵线段树相减,类似前缀和,得出当前区间内各个数出现的次数,再利用线段树的结构进行类似二分的查找即可优化对每个点都建树显然容易 memory limit exceeded思考发现,一个点只会对上一个点的权值线段树中每一层的...
2020-01-18 17:30:30 144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人