自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

玛珈山大萌新

破山中贼易,破心中贼难。不破不立,破而后立,力而为人。

  • 博客(18)
  • 收藏
  • 关注

原创 [dp]Misunderstood … Missing Gym - 102056I

题目:链接分析:分析代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " << i << endsl#define close() ios::sync_with_stdio(0), cin.tie(0

2020-11-30 19:42:25 108

原创 [Dp每日训练]送外卖2

题目:送外卖2分析:每个任务有三个状态,未开始,已开始未结束,已结束。考虑状压。dp[i][j]表示所有任务的状态,将每个任务用三进制表示成i,j表示此时在j点,所花费的最少时间。状态转移的时候先枚举每个任务,然后枚举转移过来的点。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define

2020-11-26 11:42:23 183

原创 ACM-ICPC 2018 徐州赛区网络预赛(重现)

题目:B - BE, GE or NE 计蒜客 - A2001分析:记忆化搜索,dp[pos][val]表示进行第pos轮的时候,分数为val的结果(2表示good ending,1表示normal,0表示bad,先手希望值越大越好,后手相反)。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#de

2020-11-24 11:48:00 127

原创 ACM-ICPC 2018 南京赛区网络预赛

题目:L - Magical Girl Haze 计蒜客 - A1958分析:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " << i << endsl#define close() ios:

2020-11-22 22:01:44 368

原创 [AcWing面向模型编程]1285. 单词

题目:1285. 单词分析:若b串是a串的子串,那么b串一定也是a串某个前缀的后缀。因此我们从下往上遍历每个点,将其贡献加到其nex点即可(理论依据是:拓扑序)代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " <&

2020-11-20 20:25:39 133

原创 AcWing 253. 普通平衡树

Treap平衡树题目:253. 普通平衡树您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入数值x。删除数值x(若有多个相同的数,应只删除一个)。查询数值x的排名(若有多个相同的数,应输出最小的排名)。查询排名为x的数值。求数值x的前驱(前驱定义为小于x的最大的数)。求数值x的后继(后继定义为大于x的最小的数)。注意: 数据保证查询的结果一定存在。输入格式第一行为n,表示操作的个数。接下来n行每行有两个数opt和x,opt表示操作的序号(1<

2020-11-19 15:14:46 123

原创 AcWing 352. 闇の連鎖 (树上差分)

题目:352. 闇の連鎖分析:m条边,每一条都会使得树上路径上的每一条边所处的环数++,求和可以用树上差分解决。每一条边可能处于多个环中,如果处于的环数为0,则ans+=m,若环数为1,则ans++,否则无法通过剪断该边来贡献答案。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define p

2020-11-18 11:47:50 82

原创 A - Girls Band Party 计蒜客 - 42381(银川站-分组背包)

题目:A - Girls Band Party 计蒜客 - 42381分析:首先是分组背包,然后考虑如何设置状态。分组最多1e51e51e5,所以后面的状态不能太大。挖掘题目的含义,设加成分别是1和2,则总的加成不超过15,而且总的选的物品为5,因此得到后面两维。将物品按name分组之后,dp[i][j][k]表示考虑前i个组,恰好选了j个物品且加成恰好为k,所能获得的最大分数(先不考虑加成)。状态转移极其简单,这里不赘述了,直接看代码。注意:设状态的时候一定要表明是恰好还是最多,这会导致初始

2020-11-15 23:45:05 174

原创 【模板】可持久化线段树 2(主席树)

分析:主席树板子代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " << i << endsl#define close() ios::sync_with_stdio(0), cin.tie(0),

2020-11-15 19:30:31 127

原创 可持久化trie

AcWing256. 最大异或和给定一个非负整数序列 a,初始长度为 N。有 M 个操作,有以下两种操作类型:1、”A x”:添加操作,表示在序列末尾添加一个数 x,序列的长度 N 增大1。2、”Q l r x”:询问操作,你需要找到一个位置 p,满足l≤p≤rl≤p≤r,使得:a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出这个最大值。输入格式第一行包含两个整数 N,M,含义如问题描述所示。第二行包含 N 个非负整数,表示初始的序列 A。接下来 M 行

2020-11-14 21:54:23 212

原创 [AcWing面向模型编程]线段树

线段树题目1(单点修改,区间最值):Acwing1275. 最大数给定一个正整数数列 a1,a2,…,ana1,a2,…,an,每一个数都在 0∼p−1 之间。可以对这列数进行两种操作:添加操作:向序列后添加一个数,序列长度变成 n+1;询问操作:询问这个序列中最后 L 个数中最大的数是多少。程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操作的答案。代码:#include <bits/stdc++.h>using namespace std;

2020-11-10 22:24:57 176

原创 [AcWing面向模型编程]树状数组

题目1:243. 一个简单的整数问题2分析:presum[i]=sum1(i)∗(i+1)−sum2(i)presum[i] = sum1(i) * (i + 1) - sum2(i)presum[i]=sum1(i)∗(i+1)−sum2(i)sum1(i)是求差分ai的前缀和sum2(i)是求i * ai的前缀和维护两个前缀和代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞

2020-11-10 16:00:03 137

原创 I - Max answer 计蒜客 - 38228 单调栈

题目:I - Max answer 计蒜客 - 38228分析:这个题对于正数我们可以枚举最小值,求左右可扩展的最远处(用单调栈),贡献答案。对于负数的情况,可以结合“数组的最大子数组和"一题来考虑,即O(n)求子数组最大/小和。对于这个题,我们在维护MinSum的时候,同时维护对应区间的最小负数min,并利用min * MinSum贡献答案。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//

2020-11-09 23:56:14 646

原创 2019ACM/ICPC上海网络赛 F Rhyme scheme

分析:思路:我们可以画一颗这样的树先。观察这一颗树,可以发现,每个结点如果按字典序安排子结点,那么叶子节点一定是从1~Bn的顺序。那么,随意观察一条路径,一个结点可以出现字母x当且仅当其祖先结点出现了字母x-1,也就是说,由第一层到当前层的出现字母的最大值为x或x-1,才可以在当前结点放x。如果我们将dp[i][j]表示成在第i层,已出现的最大字母为’A’+j-1,那么, 有状态转移方程dp[i][j] = dp[i+1][j]*j + dp[i+1][j+1].这个转移方程的含义是,在第i

2020-11-09 16:35:02 73

原创 待学知识

筛素数n2/3n^{2/3}n2/3算法分解质因数算法Pollard_RhoMiller_Rabin判断质数

2020-11-07 22:11:56 66

原创 [Acwing面向模型编程]dfs

题目1:AcWing 1118. 分成互质组分析:枚举每个组,对于当前的组,如果枚举到的数能够放进去,那么就一定放进去(不需要另外开一个新的组),如果当前组无法再放数,则新开辟组。一开始用的vector,一直t。看来搜索慎用stl代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define

2020-11-03 21:22:51 197

原创 [AcWing面向模型编程]第k短路

题目:178. 第K短路分析:模板代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " << i << endsl#define close() ios::sync_with_stdio(0), ci

2020-11-03 15:05:43 70

原创 二分搜索符合条件的最大最小值

当要求解的问题有多种解时,要求符合条件的最大/小的值,可以通过二分枚举解来解决(同时注意二分过程的判断和终值,可以作为模板背过)poj 2456 Aggressive cows | 求解符合条件值的最大值题意:给你n个坐标,求c个坐标中最小的最大距离。分析:注意while()循环的条件是l <= r, 最后结果是r。同时判断函数可以通过贪心的思想写。代码:#include <iostream>#include <algorithm>using namespa

2020-11-01 17:35:40 271

空空如也

空空如也

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

TA关注的人

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