自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AC自动机小记

AC自动机很多人形容ac自动机的思路为trie树上的KMP,不得不说确实很像,唯一的区别在于指针的意义。fail指针指向一个字串的最长后缀。由它的定义可以得出其一个很简单、很常用的性质:如果trie上的一个节点在目标串中出现了,那么它的fail指针指向的节点也会出现(而且结尾位置和该串一致)。这个性质可以在多模式匹配时用于状态转移(这一点很像kmp)。

2022-01-23 13:31:24 215

原创 Week 6 补题(威海)

威海C本题的数学模型如下:给定一棵树T、树的一个结点子集S,从S中任选三个结点,求这三个结点到离这三个点距离和最短的点的距离和的期望E(∑dis(ui,v)+dis(uj,v)+dis(uk,v)) E(\sum{dis(u_i,v)+dis(u_j,v)+dis(u_k,v))}E(∑dis(ui​,v)+dis(uj​,v)+dis(uk​,v))其中dis(x,y)dis(x,y)dis(x,y)表示两个结点间的距离,v表示使得dis(ui,v)+dis(uj,v)+dis(uk,v)

2021-10-29 16:46:14 81

原创 week5 补题(20年澳门区域赛)

#include <bits/stdc++.h>using namespace std;typedef long long ll;int n;const int maxn = 4e3 + 5, maxa = 1 << 8;struct node{ int fa; int a; ll b, sum; node() { fa = -1; } node(int a, int b, int fa) : a(a), b(b), fa(fa) {}};vector&l

2021-10-24 09:26:45 115

原创 数位DP、概率DP学习笔记

这篇博文主要记录一下学习DP过程中的一些总结(和板子Ongoing数位DPoi-wiki页面数位DP的格式相对固定,这里放一些做过的题目的代码上海C题博客链接题目链接要求∑log⁡2(i+j)+1\sum \log_2(i+j)+1∑log2​(i+j)+1#include <bits/stdc++.h>using namespace std;typedef long long ll;int t, X, Y;const int maxn = 32;const ll

2021-10-19 19:53:21 98

原创 week 3补题

ICPC网络赛第二场K这题是一道比较典型的状压DP,O(n2n)O(n 2^n)O(n2n)复杂度就能过。只需要枚举已拿取的盘子的情况,然后枚举每一个已拿的盘子是当前人拿走的,DP数组和答案数组同时更新即可。这里的更新顺序从小到大枚举stat即可。当xxxxx1xxx出现时,xxxxx0xxx肯定已经出现过了,所以可以直接访问其概率。#include <bits/stdc++.h>using namespace std;typedef long long ll;const in

2021-10-07 12:37:47 68

原创 week2训练补题(济南+上海区域赛)

上海站I题是道计数,场上那会儿被特判卡了没A出来参考逆十字的思路,没压缩复杂度,硬搞了O(n3)O(n^3)O(n3)的循环#include <bits/stdc++.h>using namespace std;typedef long double ld;int n, m;ld ans;ld pi = acos(-1);int main(){ scanf("%d%d", &n, &m); ans = 0; for (int k = 1; k <

2021-09-28 12:29:04 95

原创 2021-09-19

2020 ICPC 南京站补题M题这题是一道比较简单的dp,当时老是想着怎么先把树按字典序排一下序,卡了一会儿其实没有必要,直接递归+背包就能解决,加上一个额外的状态维度之后,状态转移也比较好想。比较大的问题是for循环的顺序,这里对i和k都需要从大到小循环。(因为我dp数组的定义顺序是反过来的,dp[0/1][i][j]表示i子树下有j个结点存活时的最优答案。#include <bits/stdc++.h>using namespace std;typedef long long

2021-09-19 21:49:16 53

原创 icpc 2020沈阳区域赛补题

2020沈阳区域赛H这题是一道典型dp但是需要用滚动数组优化空间,在状态转移的时候需要考虑一下是否满足天数条件。我真的吐了,debug改了半天之后发现错误原因是:排序应该是sort(v+1,v+m+1)我写成了sort(v+1,v+m)一直wa第35个点我都好奇我前34个点是怎么过去的…某种程度上也算是欧了#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll inf = 1

2021-09-10 23:52:18 828

原创 2021年ccpc网选K题

k题大意是打砖块,n×mn\times mn×m个砖块,你只有k枚子弹,有些砖块打破后可以重新获得一枚子弹。要求计算最多能得多少分。这显然是一道dp,如果没有“重新获得子弹”这一设定的话难度会下降很多。带上这个设定之后状态转移会比较难想。考虑用两个矩阵来进行状态转移,dp[0][i][j]表示在[1,i]列中射击,可用j枚子弹(且最后击破的是不返还子弹型的砖块)的最高分,dp[1][i][j]表示在[1,i]列中射击,可用j枚子弹(且最后击破的是返还子弹型的砖块)的最高分。然后就可以状态转移了,复杂度

2021-09-09 23:58:40 109

原创 2021-09-08

这里写自定义目录标题2020.9.2 校训J2020.9.2 校训第一次尝试主用vim写代码,感觉还不错J这题#include <bits/stdc++.h>using namespace std;typedef long long ll;int n, s, h[250001];struct edge{ int id; int s, e, fa; ll v; vector<int> des; void init(int idx, int S, int

2021-09-08 21:25:17 54

空空如也

空空如也

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

TA关注的人

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