Lv.2
yd_254844956
更多个人资料
154
成长值
0
关注
0
粉丝
+ 关注
私信
个人介绍
这个人很懒,什么都没有留下
感兴趣或擅长的领域
暂无数据
个人勋章
TA还没获得勋章~
成长雷达
50
24
50
30
0
个人资料
个人介绍
这个人很懒,什么都没有留下
感兴趣或擅长的领域
暂无数据
达成规则
以上满足
项可达成此勋章
博客
关注
粉丝
论坛
全部时间
全部时间
最近三天
最近一周
最近一月
全部
暂无专栏分类
AC自动机模板
先构建fail数组,在tire树中进行匹配,并利用fail数组进行跳转。核心在于,已经匹配过的部分的后缀,也是fail数组指向的前缀,从而使此部分不必进行匹配。AC(Accept)自动机以类似于KMP的next数组思想,充分利用已经匹配的部分,使相同的部分不必再次匹配,从而提高效率
网络
yd_254844956
2023-11-21 01:17:32
1354
0
0
2023-11-21 01:17:32
999+
0
0
题解 CF917A 【The Monster】
枚举起点,用tot记录,'(' 为+1,')' 为-1,若 tot == 0,说明找到一组解,则Ans++若是'?'判断tot是否大于0,表示需要右括号匹配,若大于0,此时使'?'为右括号,由于右括号一定可以改为左括号,因此num++(num为可以修改为右括号的'?'个数)而若小于此时tot < 0,说明'?'只能为左括号,因此不计入num如果某一个时刻,tot<0且num>0,说明可以将之...
yd_254844956
2023-11-21 00:28:49
1324
0
0
2023-11-21 00:28:49
999+
0
0
题解 CF327E 【Axis Walking】
状压dp题,sum[i]为状态为i时的前缀和,dp[i]为到i为止方案数每次新的状态(sum[i]) = 仅有末尾1的状态 + 去掉末尾1的状态,而二者都在先前求过了,可以O(1)的求出sum[i] 的值而dp[i] 则要枚举每种情况,用lowbit取1而非枚举每一位来加速,将每种情况累加即可int N,K,No[2],a[(1<<24)+1];long long sum[(1<<24)+1...
yd_254844956
2023-11-21 00:28:15
1158
0
0
2023-11-21 00:28:15
999+
0
0
题解 UVA11427 【Expect the Expected】
void solve(int now) { clr(dp, 0); scanf("%d/%d %d", &a, &b, &N); double p = (double) a / (double) b; dp[0][0] = 1; rep(i, 1, N) { dp[i][0] = dp[i - 1][0] * (1 - p); ...
yd_254844956
2023-11-21 00:27:08
1182
0
0
2023-11-21 00:27:08
999+
0
0
题解 UVA1485 【Permutation Counting】
状态定义:f(n,k)为n个元素,E-value为k的排列个数;转移方程:f(n,k)= f(n-1,k)* 1 放在最后 + f(n-1,k)* k 放在最后和ai>i的元素交换 + f(n-1,k-1)*(n-k) 放在最后和ai≤i的元素交换void solve() { rep(i, 1, 1000) { f[i][0] = 1...
yd_254844956
2023-11-21 00:26:10
1180
0
0
2023-11-21 00:26:10
999+
0
0
题解 CF474D 【Flowers】
一道入门DP设f[i]表示到 i 个蛋糕的方案数由题可知f[i] 可以由 f[i - 1] (只吃1 个),f[i - k](i - k > 0,吃k个)转移过来然后用sum前缀和维护一下,就可以O(1)的回答询问了void solve() { f[0] = 1; rep(i, 1, 100001) { f[i] = f[i - 1]; if(i >=...
yd_254844956
2023-11-21 00:25:19
1233
0
0
2023-11-21 00:25:19
999+
0
0
https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=0&rsv_idx=1&tn=baidu&wd=sed%20%E6%9B%BF%E6%8D%A2%E5%AD%97%E7%AC%A6%E4%B8%B2&rsv_pq=c7db61a600035dc5&rsv_t=5e19yEsbV9N5fIvdlGRU
+ 关注