自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 2023 江西省大学生程序设计竞赛

死磕C题,又不懂sg然后就寄了。幸好队友带飞,最后把B题开出来了。最后六题rank18。(这个故事告诉我们不要乱跟榜啊。

2023-05-22 19:55:08 1062

原创 第14届蓝桥杯C++B组省赛

今年比去年难好多= =

2023-04-08 17:02:19 2085 3

原创 暴力算法 --- 莫队

基础莫队带修改莫队书上莫队

2022-12-03 11:41:05 606

原创 第十一届蓝桥杯国赛C++B组题解(A - J)

第十一届蓝桥杯国赛C++B组题解(A - J)

2022-11-16 12:39:03 3064

原创 2022-10-24

2024-2.0

2022-10-24 00:14:20 89 1

原创 powershell美化

重装系统后,又用到了那个无比丑陋的powershell(bushi)。还是之前通过oh-my-posh美化过的好看。但是跟着网上的好多教程都没有美化成功,都是说什么oh-my-posh : 无法将“oh-my-posh”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的之类的报错。最后去看官方文档了(全是英文好难啊QAQ)。现在用on-my-posh美化变简单多了。

2022-09-09 14:07:03 827

原创 【DP学习总结】树形DP

文章目录【例题1】没有上司的舞会【例题2】Strategic game【例题3】选课【例题4】有依赖的背包问题本文参照:OI Wiki 树形DP树形DP,顾名思义就是在树上进行的DP。我把它分为两类,1. 有根树, 2. 无根树有根树又分为两种,一种是普通的DP,一种是树上背包DP。接下来,就来以此介绍【例题1】没有上司的舞会题目链接:P1352题意: 有编号为1∼N1 \sim N1∼N的NNN个职员,他们之间的关系就是一棵有根树,父节点是子节点的上司。他们将要举办舞会,每个人都有一个开心值v

2022-04-08 15:11:22 432

原创 【DP学习总结】区间DP

文章目录前言例题例题【1】石子合并例题【2】回文子序列小结例题【3】环形石子合并(破环成链)例题【4】多边形前言区间dp,顾名思义,是解决一类区间问题的动态规划。通常用来f[l][r]f[l][r]f[l][r]来表示区间[L,R][L, R][L,R]上的最优解。主要难在对于状态的转移。区间dp有迭代和递归两种写法,而递归写法就是一个记忆化搜索。通用模板for (int len = 1; len <= n; len ++) { 枚举长度 for (int l = 1; l +

2022-04-03 15:59:14 820

原创 杂乱无章的一些题

杂乱无章一些题目qwq

2021-12-20 11:30:35 311

原创 【DP学习总结】数位DP

文章目录求【L,R】区间满足某种性质数的个数不要62windy数花神的数论题Beautiful numbers求【L,R】区间满足某种性质数的平方和,立方和恨7不成妻不要666升级版求【L,R】区间满足某种性质数的个数模板:int dfs(int pos, int pre, int lead, int limit){ if(!pos) { 边界 } if(!limit && !lead && dp[pos][pre] != -1) return dp[p

2021-12-10 17:30:50 434

原创 【DP学习总结】状态机模型

文章目录股票买卖DP+KMP设计密码题意:solution:codeDP+AC自动机文本生成器题意:solution:code:修复DNA题意:solution:code:与矩阵快速幂的结合GT考试股票买卖DP+KMP设计密码题目链接:Acwing 1052题意:你现在需要设计一个密码 SSS,SSS 需要满足:SSS 的长度是 NNN;SSS 只包含小写英文字母;SSS 不包含子串 TTT;请问共有多少种不同的密码满足要求?答案对1e9+71e9+71e9+7取模对于此题,有

2021-12-10 13:55:57 372

原创 【DP学习总结】背包例题

文章目录1. Steadily Growing Steam题意:solution:Code:2. 选数题意:solution:Code:1. Steadily Growing Steam题目链接:2021上海区域赛 I题题意:有NNN个物品,每个物品的体积为tit_iti​,价值为viv_ivi​。在选择物品之前,你可以选择0∼k0 \sim k0∼k个物品的体积翻倍,然后需要在这NNN个物品中选出若干个物品分成AAA,BBB两堆,使得这AAA和BBB的体积相同,并且价值之和最大。求这个价值的最

2021-12-09 20:56:13 575

原创 【DP学习总结】背包九讲(模型)

文章目录01背包完全背包多重背包混合背包分组背包二维费用背包有依赖的背包背包问题求具体方案背包问题求具体方案数01背包问题描述:有NNN件物品和一个容量为VVV的背包。第iii件物品的体积是v[i]v[i]v[i],价值是w[i]w[i]w[i]。求解将哪些物品装入背包可使价值总和最大。思路:01背包的特点:每件物品可以选择放或者不放。状态表示:f[i][j]f[i][j]f[i][j]表示前iii个物品,容量不超过jjj的所有方案数中价值的最大值状态计算:不选:f[i][j]=f[i−1]

2021-12-09 15:00:24 798

原创 【DP学习总结】LIS和LCS

文章目录最长公共子序列最长上升子序列最大上升子序列和例题1. 最长公共子序列(模板)题意:solution:Code:例题2. 合唱队形题意:solution:code:例题3. 友好城市题意:solution:code:例题4.最长公共子序列子序列允许不连续。定义:最长公共子序列,英文缩写为LCSLCSLCS(Longest Common Subsequence)。其定义是,一个序列 SSS ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 SSS 称为已知序列的最

2021-12-08 17:30:21 403

原创 【DP学习总结】数字三角形模型

DP1

2021-12-07 20:21:12 594 2

原创 【DP学习总结】

好好学DP

2021-12-07 18:24:44 221

原创 ECJTU acm 21级 选拔赛题解

比赛链接注:以下顺序为期望难度顺序I. 中国人不骗中国人tag: 转义字符​ 直接输出即可,注意字符\的转义参考代码:#include <stdio.h>int main(){ printf("I Love ecjtuacm /\\=/\\")return 0;}C. 新年快乐tag: 阅读理解​ 仔细阅读题意即可发现,始终能得到最大的点数,并且点数不存在相同的情况。所以答案为n−1n-1n−1参考代码:#include <stdio.h&

2021-12-05 22:00:00 572

原创 容斥原理与Mobius函数

容斥原理百度百科:容斥原理设S1,S2,⋯ ,SnS_1, S_2, \cdots ,S_nS1​,S2​,⋯,Sn​为有限集合,∣S∣|S|∣S∣表示集合SSS的大小,则:∣⋃i=1nSi∣=∑i=1n∣Si∣−∑1≤i<j≤n∣Si∩Sj∣+∑i≤i<j<k≤k∣Si∩Sj∩Sk∣+⋯+(−1)n+1∣S1∩⋯∩Sn∣\left | \bigcup_{i=1}^{n} S_i \right | = \sum_{i=1}^{n}\left | S_i \right | - \sum

2021-11-01 18:05:40 349

原创 古代猪文--(全是数论QwQ)

题目链接题意:Sol:首先当qqq为999911659999911659999911659时,答案为000.否则的话,因为999911659999911659999911659是质数,根据欧拉定理的推论有:q∑d∣nCnd≡q∑d∣nCnd mod 999911658( mod  999911659)q^{\sum_{d|n} C_n^d} \equiv q^{\sum_{d|n} C_n^d \bmod 999911658} ( \bmod \ 999911659)q∑d∣n​C

2021-10-31 19:27:58 169

原创 高斯消元解线性方程组

高斯消元:O(n3)O(n^3)O(n3)写出增广矩阵,将增广矩阵通过初等行变换变成阶梯型,然后往回带适用于求解包含nnn个方程,nnn个未知数的多元线性方程组例如下式多元方程组:{a1,1∗x1+a1,2∗xi+⋯+a1,n∗xn=b1a2,1∗x1+a2,2∗xi+⋯+a2,n∗xn=b2⋮an,1∗x1+an,2∗xi+⋯+an,n∗xn=bn\begin{cases} a_{1,1}*x_1 + a_{1,2}*x_i +\quad \cdots \quad+ a_{1, n}*x_n =

2021-10-30 16:11:44 140

原创 矩阵乘法加速递推

矩阵快速幂加速递推式

2021-10-30 13:41:24 469

原创 中国剩余定理以及扩展中国剩余定理

中国剩余定理设m1,m2,⋯ ,mnm1, m2,\cdots, m_nm1,m2,⋯,mn​是两两互质的整数,对于下式的一元线性同余方程组有整数解{x≡a1( mod m1)x≡a2( mod m2)⋮x≡an( mod mn)\begin{cases} x \equiv a_1(\bmod m_1) \\ x \equiv a_2(\bmod m_2) \\ \qquad \vdots \\ x \equiv a_n (\bmod m_n) \end{cases}⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​x≡a1

2021-10-29 20:38:21 259

原创 扩展欧几里得求逆元以及逆元的应用

ax≡1( mod m)ax \equiv 1( \bmod m)ax≡1(modm)若aaa与mmm互质,那么xxx则为aaa的逆元可推得式子:ax+my=1ax + my = 1ax+my=1利用扩展欧几里得求:#include <bits/stdc++.h>using namespace std;int exgcd(int a, int b, int &x, int &y){ if(!b) { x = 1; y =

2021-10-29 14:03:15 609

原创 数学知识——数论分块

对于一个式子:∑i=1n⌊ni⌋\sum_{i=1}^{n} \left \lfloor \frac{n}{i} \right \rfloori=1∑n​⌊in​⌋我们容易发现在某段区间[l,r][l, r][l,r], ⌊ni⌋\left \lfloor \frac{n}{i} \right \rfloor⌊in​⌋的值是一样的。那么我们如何获取这个区间呢。我们假设区间左端点为lll,同时令k=⌊nl⌋k = \left \lfloor \frac{n}{l} \right \rfloork=⌊l

2021-10-28 01:10:21 532 1

原创 2021-10-24

print('Hello World')

2021-10-24 12:42:56 40

原创 Codeforces Round #725 (Div. 3) G. Gift Set (神奇的二分)

Link题意:有xxx颗红糖,yyy颗蓝糖用来组装成礼包。一个礼包有aaa个红糖和bbb个蓝糖或者 aaa个蓝糖和 bbb个红糖。现问有最多能组装成多少个礼包。Sol:首先保证:x>yx > yx>y,a>ba > ba>b然后二分一个方案: sss个。首先将xxx和yyy都减去bbb,剩下 (x−b,y−b)\left ( x- b , y - b\right )(x−b,y−b),然后就是求a=a−ba = a - ba=a−b的个数了。首先是a==0a =

2021-10-21 12:43:56 85

原创 codeforces F. Moving Points (树状数组 + 离散化)

Link题意数轴上有NNN个点。其中坐标为xix_ixi​的点有一个速度为viv_ivi​(沿xxx轴正向)。问每两个点之间的最小距离之和。Sol对于两个点iii和jjj,只有xi≤xjx_i \le x_jxi​≤xj​并且vi≤vjv_i \le v_jvi​≤vj​时,此时两点无法相遇,最短距离就是∣xi−xj∣| x_i - x_j|∣xi​−xj​∣;其他情况都会相遇,最小距离为0。将距离从小到大排序,然后速度离散化,每次对答案的贡献就是:比当前点速度还小的点的个数乘上当前点的坐标减去前

2021-10-17 18:30:16 92

原创 单词(AC自动机,拓扑排序)

题目链接题意:有一篇论文,是由很多的单词构成。但他发现一个单词会出现多次现在有NNN个单词,问这个NNN个单词出现的次数Sol:建立Trie的同时,记录一个f[i]f[i]f[i]数组记录当前单词出现的次数(类似前缀和)。然后同样利用bfs构建failfailfail数组,另外bfs的队列里面记录的节点顺序应该为Trie图的拓扑序列。在所有单词中求某个单词的出现次数的时候,就是求所有前缀当中后缀出现的单词(failfailfail数组的定义),最后就是从后往前累计单词的出现次数。Code:

2021-10-13 17:04:13 137

原创 HDU 2222 Keywords Search (AC自动机模板题)

题目链接题意:给出NNN个单词,然后给出一个文本,问在这个文本当中有多少单词出现过?Sol:前置知识:Tire树以及KMPAC自动机的过程构造一棵Trie树,建立failfailfail指针(数组),就像KMP算法一样,当匹配失败的时候利用Next数组进行跳转。类似的,在AC自动机里,当前不匹配时,跳到具有最长公共后缀与前缀匹配的字符串位置继续匹配。failfailfail数组的定义是:从aaa串跳到bbb串,bbb串一定是aaa的字串,那么bbb串一定也是aaa串某个前缀的后

2021-10-13 01:03:34 82

原创 Monopoly (数学,数据结构,同余域)

题目链接Code:#include<bits/stdc++.h>#define int long long#define endl '\n' #define br putchar('\n') #define _x fixed << setprecision#define debug(x) cerr<< #x << '=' << x << '\n'#define ok() cout << "Yes\n" #

2021-10-12 21:04:35 229

原创 Nun Heh Heh Aaaaaaaaaaa(动态规划,排列组合)

题目链接Code#include<bits/stdc++.h>#define int long long#define endl '\n' #define br putchar('\n') #define _x fixed << setprecision#define debug(x) cout << "------" << x << "-----\n";#define ok() cout << "Yes\n" #de

2021-10-11 11:36:42 225

原创 2021 CCPC 网络赛重赛 Jumping Monkey(并查集重构树,dfs)

题目链接题意给出一个nnn个结点的树,每个节点有一个权值aia_iai​。现在有一个猴子,他可以从iii结点跳到jjj结点的要求是:在iii->jjj的最短路径上jjj的权值是最大的。现在询问k⊆(1,n)k \subseteq (1, n)k⊆(1,n)时,猴子能跳到的最多结点数量。SolCode#include<bits/stdc++.h>#define int long long#define endl '\n' using namespace std;typ

2021-10-11 10:34:50 398

原创 可持久化线段树(静态,第k小数)

第k小数题目链接题意:给定长度为NNN的序列AAA,下标为1∼N1 \sim N1∼N现在要执行 MMM 次操作,其中第 iii 次操作为给出三个整数 li,ri,kil_i,r_i,k_ili​,ri​,ki​,求 A[li],A[li+1],⋅⋅⋅,A[ri]A[l_i],A[l_i+1],···,A[r_i]A[li​],A[li​+1],⋅⋅⋅,A[ri​] (即 AAA 的下标区间 [li,ri][l_i,r_i][li​,ri​])中第 kik_iki​ 小的数是多少。Sol:可持久

2021-10-03 20:09:02 132

原创 可持久化Trie树

文章目录朴素版Trie树可持久化Trie树例题:题意:Sol:Code:朴素版Trie树朴素版Trie树可持久化Trie树可持久化Trie树,对于每个版本,需要将所有结点创建出来并与上一个版本建立联系。优点:从某个版本开始,能够遍历到该版本内的所有结点。可以解决动态的异或问题。例题:最大异或和题意:给定一个非负整数序列 aaa,初始长度为 NNN。有 MMM 个操作,有以下两种操作类型:A x:添加操作,表示在序列末尾添加一个数 xxx,序列的长度 NNN 增大 111。Q l

2021-10-03 16:55:20 203

原创 营业额统计(Treap的简单应用)

Treap的简单应用题目链接题意:设第 iii 天的营业额为 aia_iai​,则第 iii 天(i≥2i \ge 2i≥2)的最小波动值 fif_ifi​ 被定义为:fi=min1≤j<i∣ai−aj∣f_i=min_{1 \le j < i}|a_i-a_j|fi​=min1≤j<i​∣ai​−aj​∣求出每一天的fif_ifi​总和,其中:f1=a1f_1 = a_1f1​=a1​Sol:建立平衡树,查询每天营业额在平衡树的前驱后继与之比较统计code:#inclu

2021-10-02 22:45:26 327

原创 平衡树(模板)

平衡树の模板您需要写一种数据结构,来维护一些数,其中需要提供以下操作:插入数值 xxx。删除数值 xxx(若有多个相同的数,应只删除一个)。查询数值 xxx 的排名(若有多个相同的数,应输出最小的排名)。查询排名为 xxx 的数值。求数值 xxx 的前驱(前驱定义为小于 xxx 的最大的数)。求数值 xxx 的后继(后继定义为大于 xxx 的最小的数)。Code:#include <bits/stdc++.h>using namespace std;const int

2021-10-02 22:35:51 153

原创 Codeforces Round #744 (Div. 3)(补题)

文章目录A.Casimir's String SolitaireB.Shifting SortC. TicksD.roductive MeetingE1.Permutation Minimization by DequeE2.Array Optimization by Deque题目链接A.Casimir’s String SolitaireSol:判断b的数量是否等于a与c的和Code:#define ok() cout << "Yes\n" #define gg() cout &

2021-09-29 11:14:56 214

原创 亚特兰蒂斯(线段树,扫描线,离散化,二分)

亚特兰蒂斯题目链接题意:有n个矩形,求这些矩阵的总面积(矩阵有重叠)Sol:将y离散化,线段树维护区间的长度。Code:#include<bits/stdc++.h>using namespace std;const int N = 100010;int n;struct Segment{ double x, y1, y2; int k; bool operator < (const Segment &b) const {

2021-09-28 22:02:19 187

原创 补题の快乐

题目链接J.Leaking Roof题意:有n×n的方格,每个格子有个高度,初始时每个格子的水量为m,每个点均匀严格由高往低流。问最终高度为零的地方的水量,其余地方输出0即可。Sol:按照题意,从最高地方模拟流水。注意最后输出,高度不为0的地方直接输出0.Code:#include<bits/stdc++.h>using namespace std;typedef pair<int, int> PII;const int N = 550;double w[N][

2021-09-27 01:45:17 102

原创 树状数组训练

树状数组训练文章目录A. Ultra-QuickSortB.敌兵布阵C.Color the ballD.JapanE.MatrixA. Ultra-QuickSort题意:交换相邻元素使n个元素的序列成为升序Sol:求逆序对的数量逆序对(归并排序,树状数组)Code:归并排序#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>us

2021-09-19 14:50:08 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除