自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Yiwen with Sqc(HDU-7055)

题目链接给出一个只含有小写字母组成的串ssqc(s,l,r,c)表示字符c在s的[i,j]内的出现次数这里提供DP做法。设表示以i结尾的子区间字符串的答案。考虑从推到当时:那么除了c以外的字母x对于c来说 ,所以 即 也就是 显然我们要维护这么个东西当从i转移到i+1时,会加上 因为的每个都会加上i+1这个位置贡献 1,总共贡献 i...

2022-07-11 18:01:14 161 1

原创 2021牛客多校3(BCFJ)

题意:地图规模为5000*5000级别,点权wi​(0≤wi​

2022-07-04 18:53:12 307

原创 2021牛客多校4(CEIJ)

目录C:LCS(模拟)E:Tree Xor(线段树区间合并)I:Inverse Pair(逆序对,思维)J:Average(浮点数二分)没什么好说的 模拟分情况讨论即可E:Tree Xor(线段树区间合并)题意:你有一个一颗树节点数n(1≤n≤105),树上的边有一个边权w,点有一个点权ai​,你要保证有直接父子关系的点之间au​⊕av​=w,并且树上每个点他的点权选取范围为[li​,ri​],现在请问你能构造出多少颗不同的树,有任何一ai​不同就认为是一颗不同的树。思路:注意到一个非常重要的性质

2022-07-04 18:02:16 384

原创 2021牛客多校5(BCDJK)

目录B:Boxes(数学期望) C:Cheating and Stealing(模拟)D:Double Strings(DP,组合数) J:Jewels(二分图最大权完美匹配)K:King of Range(ST表,双指针)题意:有 n 个盒子,每个盒子中装有黑球白概率均为。打开第 i个盒子所需代价为 。现在有一个机会,使用 c 的代价知晓剩余盒子中黑球个数,问使用最优策略开盒子直到直到全部盒子装球颜色情况的期望最小代价。思路:只能有一次机会知道剩余盒子黑球的个数,那么最好的结果是用了这次机会花费c,剩余盒

2022-07-04 17:10:24 209

原创 2021牛客多校6(CFH)

题意:你有一张n(3≤n≤2000)个点的无向完全图,你需要删掉一些边,让这张图里面边数小于n,输出你删除边的方案。思路:这个图一共有 条边,我们必须要删除至少条边。我们需要构造出尽可能多的三元组,还要保证任意两对三元组里相同的点不能超过1个.官方给出的答案是的所有解。那么我们只需要保证进行暴力即可。(证明不会)F:Hamburger Steak(思维)题意:n块牛排,m个烤盘,每块牛排要烤​分钟,而且最多可以分两次烤,只要时间达到​就行,输出最小花费时间时,每块牛排的烤制方案,按照时间顺序输出

2022-06-30 22:01:10 157

原创 2021牛客多校7(F)

题意:给两棵树,选取一系列编号的节点,需要满足并且还要求这些点在第一棵树上是连续的。求最大的集合大小。思路:可以发现,这些点在第一颗树上必须是一条连续的链,在第二棵树上链上的点不能互相成为对方的子树结点。考虑在第一颗树上尺取,划分出一个深度最浅的结点设为上界和一个深度最深的结点设为下界。解决方法为:将第二棵树dfs序,在第一颗树上进行dfs进行尺取,类似于滑动窗口。从根节点开始迭代,每加入一个点,需要在第二棵树上维护一个值标记此结点以及子树(用线段树维护)表示这条链不能满足,需要pop出去链的最开始的结点,

2022-06-29 22:55:31 93

原创 2021 Hubei Provincial Collegiate Programming Contest(补题)

傻逼题意 恶心模拟无题意:一个长度为n的排列数组。选取一个区间 的数作为集合A,选取一个区间 里面的数作为集合B,当两个区间的交集为空,而且A!=B 并集为C, 的元素的个数,该超级集合C就是合法的。当我们选取的区间中l>r的时候,该集合为空集。求集合C的数目思路:(感觉难点在于读懂题意)一定要注意到当我们选取的区间中l>r的时候,该集合为空集。这样才能推出样例容易发现​的元素的个数这个条件,你选取的区间一定是一段连续的数。那我们直接枚举每一段区间 然后检查需要多少个区间才能拼出所枚举的区间,如果需

2022-06-29 18:49:01 857

原创 2021牛客多校10(AF)

题意:给出n个字符串,你需要输出n行。对于第i个字符串来说,你需要在1~i这些字符串找到一些最小的前缀数量,并且这些前缀都属于1~i这些字符串的某些前缀,但不能属于在i+1~n字符串的前缀。solution:正着想很难实现,所以要倒着想(正难则反)对于所有1~n的字符串,答案就是不同首字母的个数。我们把n个字符串的前缀都hash出来,并且把前缀的下标也存起来,比如前n字符串的下标都为0,倒着求答案,接下来把当前字符串的相同前缀的前面的字符串都找出来(用map用hash值做映射,把相同前缀的字符串id存进去)

2022-06-24 18:51:37 182

原创 2021牛客多校9(EI)

2021牛客多校

2022-06-23 20:31:24 244

原创 2021牛客多校8(ADFJ)

2021牛客多校

2022-06-23 17:55:08 247

原创 P2515 [HAOI2010]软件安装(luogu)(强连通分量缩点+树形dp)

原题链接思路:将图缩点后变成一个无环拓扑图,其实就是一棵树,因为只有父节点拿了,子节点才能拿,然后在树上进行背包DP。(代码有详细注释)#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>#include<queue>#include<stack>#include<se

2022-03-31 21:43:26 110

原创 Mio visits ACGN Exhibition(2021江西省icpc省赛A题)

考虑动态规划f[i][j][x][y] 表示从(1,1)走到(i,j)经过x个0和y个1的方案数,根据题意的范围,空间不允许。考虑降维由于不是0就是1,可以降维到f[i][j][x]表示从(1,1)走到(i,j)经过x个0和i-j-1-x个1的方案数,但空间还是不允许。考虑用滚动数组优化到(i,j)只能从(i-1,j-1)和(i,j-1)这两个状态转移过来降为f[2][j][x]:表示为走到(i,j)有x个0的方案数f[0][j][x]表示为上一行的状态,f[1][j][x]表示

2022-03-21 10:03:04 375 3

原创 DFS序笔记

定义:dfs序:每个节点在dfs深度优先遍历中的进出栈的时间序列。定义两个数组qian[x],hou[x],即结点x在dfs序中第一次出现的位置和最后出现的位置,dfs序的区间总长度为cnt_nodevoid dfs(int u,int pre){ qian[u]=++cnt_node; for(int i=h[u];~i;i=e[i].ne) { int v=e[i].v; if(v==pre) continue; dfs(v,u); } hou[u]=++cnt_.

2022-03-02 10:08:59 90

原创 2019 ICPC南京站 B题 Chessboard(思维)(组合数)

思路:通过手动模拟可以发现只要终点是四个角就会满足题意的要求,所有可以暴力枚举每个起点来找出,但是复杂度不允许。。。我们从一行一列(1个小矩形)开始,向外扩展一行或一列,就会变成一个新的矩形,由于终点只能是四个角,会发现每增加一行或者一列,方案数就会是上个矩形的方案数+4.比如2行2列的方案数是8,2行3列的方案数是12,3行2列的方案数是12.最终增加n-1行和m-1列,总共扩充n+m-2次,扩充方案数位C(n+m-2,m-1)。所有答案为4*C(n+m-2,m-1)需要特判一下 一行或一列的

2022-02-28 15:16:27 275

空空如也

空空如也

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

TA关注的人

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