03 2023 档案

摘要:波动数列 题意 一个数列有以下性质:ci=ci1+aci=ci1b,i[2,n]. 求一个长度为n,总和为s的数列有多少个。 思路 显然 在位置pos[2,n],假设cpos=cpos1+x,则这个值x对整个数组的贡献为$(n-pos+ 阅读全文
posted @ 2023-03-26 19:12 Liang2003 阅读(15) 评论(0) 推荐(0) 编辑
摘要:F 连通性状压dp 思路 看了dls的讲解后才明白一点点。 状态dp[i][j][k]表示到表示到i列,删除了j条边,点i和n-1+i是否联通,对于下一列点, 若当前i和n-1+i连通,则多出来的三条边连任意两条,使得下一列点i+1和n+i连通,否则下一列点不连通。 若当前点i和n-1+i不连通 阅读全文
posted @ 2023-03-26 12:15 Liang2003 阅读(17) 评论(0) 推荐(0) 编辑
摘要:D 题意 给一个01串,交换两个数需要花费1012,删除某个数需要花费1012+1,问最少花费多少使得串单调不降 思路 线性dp,f[i][0]表示前i位构建的串结尾为0,单调不降的花费,f[i][1]同理,f[i][2]表示前i位构建的串结尾1的个数多于1的花费。 阅读全文
posted @ 2023-03-24 15:13 Liang2003 阅读(70) 评论(0) 推荐(0) 编辑
摘要:AtCoder Beginner Contest 246 D 题意 求一个xn 使得x=a3+a2b+ab2+b3n1018 思路 变形 x=(a+b)(a2+b2) ,那么a、b的范围在1e6 从大到小枚举每个a,那么每个符合情况的b的最小值一 阅读全文
posted @ 2023-03-22 20:42 Liang2003 阅读(13) 评论(0) 推荐(0) 编辑
摘要:AtCoder Beginner Contest 243 F 题意 n种彩票,每种彩票i中奖概率为pi ,求抽k次后恰好m种彩票中奖的概率(简化的概率,题目中的概率还要用个逆元) 思路 超几何分布,设抽k次后每种彩票i中奖个数为ci ,则概率为 $P=C_k^{c_1}*p_1^{c_1 阅读全文
posted @ 2023-03-20 23:13 Liang2003 阅读(16) 评论(0) 推荐(0) 编辑
摘要:# 收录遇到的这一类型的题(慢慢更新) [AtCoder Beginner Contest 243 F](https://atcoder.jp/contests/abc243/tasks/abc243_f) [题解](https://www.cnblogs.com/LIang2003/p/17238 阅读全文
posted @ 2023-03-18 11:15 Liang2003 阅读(11) 评论(0) 推荐(0) 编辑
摘要:ABC 240 F 思路 维护前缀和B,以及B的前缀和C,然后在每次添加连续y个x的时候,从中找出最大的Ci(用pre记录),更新答案。 有四种情况 B0,x>0 那么新出现的Ci中的最大值就在最后一个元素 B0,x<0 新出现的ci中最大值即$C_k,k 阅读全文
posted @ 2023-03-14 19:27 Liang2003 阅读(19) 评论(0) 推荐(0) 编辑
摘要:经典dp之字符串最小编辑距离 模板题 给定两个串a,b,然后有3个操作:增加任意一个字母,删除任意一个字母,改变某个字母,然后问将a变成b要多少次操作 这位大佬已经讲得很详细了 f[i][j]=min(f[i][j],f[i][j1]+1) 这里转移是本来i位就匹配了j-1位,现在多了j,就要 阅读全文
posted @ 2023-03-06 12:27 Liang2003 阅读(27) 评论(0) 推荐(0) 编辑
摘要:异或值(字典树) 思路 唉,人太笨了,知道用字典树,但想不出过程,知其然而不知其所以然。 代码 void insert(int x) { int p=0; for(int i=30;i>=0;i--) { int u=(x>>i)&1; if(!son[p][u]) son[p][u]=++idx; 阅读全文
posted @ 2023-03-04 22:36 Liang2003 阅读(13) 评论(0) 推荐(0) 编辑
摘要:AtCoder Beginner Contest 252 D 题意 在数组中形如 1i<j<kn使得ai,aj,ak互不相同,求共有多少组满足条件 思路 它的数据范围1ai2105,这就用个数组求个前缀和就搞定了。 代码 void so 阅读全文
posted @ 2023-03-04 18:49 Liang2003 阅读(17) 评论(0) 推荐(0) 编辑
摘要:AtCoder Beginner Contest 251 D 给定一个1e6范围内的数n,要你构造出一个数组,对于1~n中的任何一个数都能用数组中最多三个数的和加起来。 这题真的是很好的一道思维题,想了我两个小时都没想出来 代码 int n,m,c; int a[N],cnt=0; //我真shab 阅读全文
posted @ 2023-03-02 19:04 Liang2003 阅读(12) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 144 (Rated for Div. 2) A 题意 从1开始,当数为3的倍数输出‘F',为5的倍数输出'B' ,都是两者倍数输出'FB'. 思路 模拟下就可以看出规律,以'FBFFBFFB'为循环,记得要复制3次,因为它最长为10,最多在 阅读全文
posted @ 2023-03-01 13:27 Liang2003 阅读(136) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示