摘要: D 题意 给一个01串,交换两个数需要花费$10^{12}$,删除某个数需要花费$10^{12}+1$,问最少花费多少使得串单调不降 思路 线性dp,$f[i][0]$表示前i位构建的串结尾为0,单调不降的花费,$f[i][1]$同理,$f[i][2]$表示前i位构建的串结尾1的个数多于1的花费。 阅读全文
posted @ 2023-03-24 15:13 Liang2003 阅读(68) 评论(0) 推荐(0) 编辑
摘要: AtCoder Beginner Contest 246 D 题意 求一个$x\geq n$ 使得$x=a^3+a^2b+ab^2+b^3$且$n\leq10^{18}$ 思路 变形 $x=(a+b)(a^2+b^2)$ ,那么a、b的范围在1e6 从大到小枚举每个a,那么每个符合情况的b的最小值一 阅读全文
posted @ 2023-03-22 20:42 Liang2003 阅读(8) 评论(0) 推荐(0) 编辑
摘要: AtCoder Beginner Contest 243 F 题意 n种彩票,每种彩票i中奖概率为$p_i$ ,求抽k次后恰好m种彩票中奖的概率(简化的概率,题目中的概率还要用个逆元) 思路 超几何分布,设抽k次后每种彩票i中奖个数为$c_i$ ,则概率为 $P=C_k^{c_1}*p_1^{c_1 阅读全文
posted @ 2023-03-20 23:13 Liang2003 阅读(14) 评论(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 阅读(9) 评论(0) 推荐(0) 编辑
摘要: ABC 240 F 思路 维护前缀和B,以及B的前缀和C,然后在每次添加连续y个x的时候,从中找出最大的$C_i$(用pre记录),更新答案。 有四种情况 $B\geq 0,x>0$ 那么新出现的$C_i$中的最大值就在最后一个元素 $B\geq0,x<0$ 新出现的$c_i$中最大值即$C_k,k 阅读全文
posted @ 2023-03-14 19:27 Liang2003 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 经典dp之字符串最小编辑距离 模板题 给定两个串a,b,然后有3个操作:增加任意一个字母,删除任意一个字母,改变某个字母,然后问将a变成b要多少次操作 这位大佬已经讲得很详细了 $f[i][j]=min(f[i][j],f[i][j-1]+1)$ 这里转移是本来i位就匹配了j-1位,现在多了j,就要 阅读全文
posted @ 2023-03-06 12:27 Liang2003 阅读(24) 评论(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 阅读(10) 评论(0) 推荐(0) 编辑
摘要: AtCoder Beginner Contest 252 D 题意 在数组中形如 $1\leq i<j<k\leq n$使得$a_i,a_j,a_k$互不相同,求共有多少组满足条件 思路 它的数据范围$1\leq a_i\leq 2*10^5$,这就用个数组求个前缀和就搞定了。 代码 void so 阅读全文
posted @ 2023-03-04 18:49 Liang2003 阅读(14) 评论(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 阅读(10) 评论(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 阅读(131) 评论(0) 推荐(1) 编辑