摘要:
希望下次见到这种题能一眼看出来生成函数 mod非质数只能用卢卡斯 #include<bits/stdc++.h> #include <bits/extc++.h> using namespace std; using namespace __gnu_cxx; using namespace __gn 阅读全文
摘要:
https://www.luogu.com.cn/problem/CF431E #include<bits/stdc++.h> using namespace std; #define IOS ios::sync_with_stdio(false) ,cin.tie(0), cout.tie(0); 阅读全文
摘要:
DP 求概率 这类题目从初始状态推向结果,和一般dp类似。dp设为从初始状态到某一状态的概率 DP 求期望 这类题目从结果回到初始状态。dp设为从从当前状态到最终状态的期望,最终状态期望为0 (大多题目可以推公式) ##总结: 1.当前状态期望=(下一状态期望值+转移权值)×转移到下一状态的概率 2 阅读全文
摘要:
https://atcoder.jp/contests/abc249/submissions/me 给你要生成的字符串长度和模数。问只用26个小写字母可以生成多少种字符串,且这个字符串进行合并操作后比原串长度小。 因为只给了规模要我们生成,所以dp只和同一字母的长度有关 根据题意设状态dp[i][j 阅读全文
摘要:
设num[i]为i的进二进制位上1的个数,这样(u, v)和函数值一一对应起来。 原FWT就是循环中一直/2,就是/n 使用简陋版龟速乘 #include<bits/stdc++.h> #define ll long long const int N = 5e6 + 7; const int mod 阅读全文
摘要:
题意:只有A和B组成的长度3e5的串,计算有多少好子字串,好字串:字串中每个位置的字母都可以属于字串中的一个回文串。 BAAABBB 单独一个字母开头的l,l,r中必须存在和ss[l]相同的字母 AAAB r不能是单独一个字母 我是通过队列维护i之后最近的A和B来模拟的 #include<bits/ 阅读全文
摘要:
数组A中的每个1被统计了n次,所以可以得到A中1的个数 倒着模拟,就知道了Bi数组(1都在后面),当前bi>=i说明Ai = 1,bi是由bi-1在[i - one + 1, i]上加1得来的,所以让这个区间全减一,bi < i则Ai = 0,bi由bi-1右移动得来。 树状数组维护差分数组,实现区 阅读全文
摘要:
盘子的顺序是没有影响的,所以记下3种盘子的数量 设fijk 为三种盘子的个数为ijk时候的期望。 转移顺序比较乱,使用记忆化 #include<bits/stdc++.h> using namespace std; #define IOS ios::sync_with_stdio(false) ,c 阅读全文