VIrtuoso

两把多兰剑加个布甲鞋

导航

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页

2019年5月3日 #

Hello 2019 D 素因子贡献法计算期望 + 概率dp + 滚动数组

摘要: 题意 给你一个n和k,问n经过k次操作之后留下的n的期望,每次操作n随机变成一个n的因数 题解 概率dp计算出每个素因子留下的概率,乘以这个素因子的值就是这个素因子的贡献期望 定义$dp[i][j]$为第i次操作后剩下j个素因子的概率, 概率dp顺着推 $dp[i][j] dp[i+1][k](k 阅读全文

posted @ 2019-05-03 19:42 VIrtuoso 阅读(127) 评论(0) 推荐(0) 编辑

Codeforces Round #530 (Div. 2) F 线段树 + 树形dp(自下往上)

摘要: 题意 一颗n个节点的树上,每个点都有$x[i]$个饼干,然后在i节点上吃一个饼干的时间是$t[i]$,有n 1条边,每条边有边权w为经过一条边所需时间,你从树根开始先手向下走,然后对手割掉你所在节点到子节点的任意一条边,你可以在任何时间选择返回,在返回的过程中你可以选择性吃掉经过节点的饼干,问在双方 阅读全文

posted @ 2019-05-03 18:36 VIrtuoso 阅读(143) 评论(0) 推荐(0) 编辑

Codeforces Round #549 (Div. 2) E 倍增处理按排列顺序的上一个位置

摘要: 题意 p为n的一个排列,给出有m个数字的数组a,q次询问,每次询问a数组区间[l,r]中是否存在子序列为p的循环排列 题解 预处理出值x在排列中的上一个值_p[x] 从左向右扫一遍a数组,维护值x最后出现的地方$pre[x]$,和每个位置i在排列顺序下前j个数在数组中的位置$par[i][j]$(倍 阅读全文

posted @ 2019-05-03 16:03 VIrtuoso 阅读(138) 评论(0) 推荐(0) 编辑

Codeforces Round #549 (Div. 2) D 数学

摘要: 题意 有nk个城市,第1,k+1,2k+1,...,(n 1)k+1城市有餐厅,你每次能走l距离,a为起始位置离最近餐厅的距离,b为走了一次后离最近餐厅的距离,给出n,k,a,b,求你回到起点最少和最多停留次数 题解 $yl=xnk,有y=xnk/l,即y=lcm(xnk,l)/l$ 枚举a(两种情 阅读全文

posted @ 2019-05-03 14:59 VIrtuoso 阅读(162) 评论(0) 推荐(0) 编辑

2019年4月28日 #

2019浙江省赛B zoj4101 Element Swapping(推公式)

摘要: 题意 $数组a通过交换一对数字,得到了b数组,给出x=\sum^n_{k=1}ka_k和y=\sum^n_{k=1}ka_k^2和b数组,问有多少对l,r(li(方便计数),枚举b_i通过式子一可以计算b_j,然后通过式子二可以计算出j,判一下b_j是否等于j$ $X_2 X_1=0,Y_2 Y_1 阅读全文

posted @ 2019-04-28 15:58 VIrtuoso 阅读(767) 评论(1) 推荐(0) 编辑

2019浙江省赛K zoj4110 Strings in the Pocket(manachar)

摘要: 题意 给你两个串,可以翻转a串的一个区间,问有多少对l,r使得翻转后的a串等于b串 题解 沙比提,比赛时想了想两个串相等就用马拉车求回文子串个数,觉得两个串不相等情况很复杂就没想下去了,其实两个串不相等的情况更好处理 两个串不一样的话,一定需要翻转第一个和最后一个不相等的位置(关键),判一下中间是不 阅读全文

posted @ 2019-04-28 09:04 VIrtuoso 阅读(844) 评论(0) 推荐(0) 编辑

2019年3月31日 #

Codeforces Round #545 (Div. 2) D 贪心 + kmp

摘要: 题意 两个01串s和t,s中字符能相互交换,问最多能得到多少个(可交叉)的t 题解 即将s中的01塞进t中,预处理出next(tlen),然后每次填完移到next(tlen)继续填即可 代码 c++ include using namespace std; int sl,pl,i,j,a,b,e,f 阅读全文

posted @ 2019-03-31 17:02 VIrtuoso 阅读(122) 评论(0) 推荐(0) 编辑

Educational Codeforces Round 58 (Rated for Div. 2) F dp + 优化(新坑) + 离线处理

摘要: 题意 有n个城市,m辆卡车,每辆卡车有起点$s_i$,终点$f_i$,每公里油耗$c_i$,可加油次数$r_i$,每辆卡车的油箱大小一样,每次加油都会加满,在城市之间不能加油,问最小油箱大小能满足每辆卡车顺利到达终点 题解 n define ll long long define MAXN 5000 阅读全文

posted @ 2019-03-31 16:56 VIrtuoso 阅读(88) 评论(0) 推荐(0) 编辑

Educational Codeforces Round 58 (Rated for Div. 2) D 树形dp(自下往上) + 数学

摘要: 题意 一颗n个点的树,找出一条gcd 1的最长链,输出长度 题解 容易想到从自底向长转移 因为只需要gcd 1即可,所以定义$dp[u][i]$为u的子树中和u相连的gcd含有i的最长链长度,i为素因子 这样对于每个点u,维护$dp[u][i]$,用两条最长子链和u构成的链更新答案即可 代码 c++ 阅读全文

posted @ 2019-03-31 16:30 VIrtuoso 阅读(132) 评论(0) 推荐(0) 编辑

Codeforces Round #536 (Div. 2) F 矩阵快速幂 + bsgs(新坑) + exgcd(新坑) + 欧拉降幂

摘要: 题意 数列公式为$f_i=(f^{b_1}_{i 1} f^{b_2}_{i 2} ... f^{b_k}_{i k})$mod$P$,给出$f_{1}...f_{k 1}$和$f_{n}$,求$f_{k}$,其中$P$等于998244353 题解 3是998244353的离散对数,所以$f^{b_ 阅读全文

posted @ 2019-03-31 16:18 VIrtuoso 阅读(143) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页