自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Codeforces Round 604 (Div. 2) D 期望dp

从1开始遍历,有ai/100的概率进入下一个下标。设dp[i]为从i-1到达i的期望次数。100-ai/100的概率从头开始。然后都算出来之后我们都加起来就好了。sum是从1到达i-1的期望步数。问多少次可以到达n+1。

2024-09-26 21:42:38 75

原创 Codeforces Round 848 (Div. 2) E 期望dp

每次等概率的改变一个值,也就是x/(x+y)的概率一个相同的变成不相同的。记dp[i]为i+1个不相同的变成i个不相同的 的期望次数。然后我们都求出来之后,答案就是dp数组前y个的前缀和。然后我们要求的是不相同的从y对到0对的期望次数。y/(x+y)的概率让一个不相同的变成相同的。总共n对,相同的记为x对,不相同的计为y对。很显然dp方程是这样的。

2024-09-26 20:39:26 221

原创 牛客周赛 Round 60 F 期望dp

我们设置p[i][1]为读第i个的时候,下一个会读i+1个的概率,p[i][2]为读第i个的时候,下一个会读第i个的概率,p[i][3]为读第i个的时候,下一个会读第i-1个的概率。对于第i-1个,有p1的概率,下一个能读到i+1,p2的概率还是自己,p3是读i-1。然后我们规定dp[i]为从第i-1个开始读,能读到第i个的期望次数。p数组可以预处理出来,这个直接算就是,就不过多描述了。然后以此遍历来算就可以了,最后都加起来就是答案。然后你就可以得到公式。

2024-09-26 19:41:47 85

原创 2022 ICPC 南京站 D 二分答案 前缀和处理第k大问题

剩下的都是需要加数的,(x-b[i]-c)/d向上取整就是至少要多少个d才能让b【i】大于等于x。那么我们来找,对于每个数,如果能大于等于x,枚举等差数列的左端加在哪里。对于每个数,如果能大于等于x,枚举等差数列的左端加在哪里这个问题。如果不需要加本身就大于等于x也跳过,然后记录一下这样的数量shu。我们发现对于每个数,给它加的数的值都是单调递增的,具有单调性。由等差数列加的左端点的下标由小到大,加的值由大到小。肯定是不能暴力枚举把等差数列的第一个加的数的位置。然后能加数的值的限制长度是m。

2024-09-26 16:37:21 188

原创 2022 南京 ICPC A

按照这个矩阵的移动,我们查询每一个点会有多少个不同的这个矩阵的部位来过。矩阵每移动一次,我们给这个矩阵所涵盖的地方+1,不要计算重复的。然后查询矩阵里面所有数量减去枚举每个点的数量等于k的点的数量。到最后每个点的值就是可以吞掉的剩余矩阵的点的数量。首先思考,如果没有洞的话,最后会剩下什么。把这个矩形通过字符串可以很容易模拟出来。然后很显然洞会对这个剩下的矩阵产生影响。

2024-09-26 16:25:27 356

原创 CF895C 状压dp 组合数学

dp[i][j]=dp[i-1][j]*2的k-1次方 这是选出偶数个i,k为i的数量。dp[i][新的j]=dp[i-1[j]*2的k-1次方 这个是选出奇数个i,j会改变。a的数据范围是1-70,所以n其实就是个摆设,我们统计1-70中所有数的数量就可以了。那dp[i][j]自然是从dp[i-1]的所有状态遍历来的。从k个数中选出奇数个与选出偶数个的方案数都是2的k-1次方。对于这个i有多少个,如果选出奇数个,那么状态j就会改变成。dp[i][j]为前i个数,状态为j的有多少种。

2024-09-24 21:05:32 461

原创 2024 ICPC 第二场网络赛 G 扩展欧几里得

然后在这种情况下怎么求概率呢,首先n肯定是大的那个,小的那个想赢肯定最起码前n/m把得赢,前n/m把输一把就直接输了。扩展欧几里得的本质是一直让大的数减去小的,直到那个大的数变得比小的更小。我们设置x是在拥有n个筹码,赢一局比赛概率为a的人,最终赢的概率。然后小的那个能赢的概率肯定是在那个状态下,获胜的概率。这是a是赢的概率,a和n放在1,3位置,不要放混。那就是没能进入状态的概率加上进入了之后赢的概率。进入那个状态的概率就是b的(n/m)次方。然后爱丽丝赢的概率就变成了。然后大的那个赢的概率呢。

2024-09-23 21:11:04 961

原创 CF629C dp预处理

最后我们肯定是得枚举左边的字符串的种类,然后预处理出来能够匹配左边的右边的字符串的种类。,我们都可以通过(与)的总数量为n-m,以及(与)相等两点来表示出右边字符串的类型。dp[i][j]可以表示(比)多,那么也可以反着来表示,没有区别。我们预处理出来的肯定(的数量要大于等于)的数量。那么我们对于左边的字符串的种类进行预处理。如果字符串是有效的,那么得符合两个要求。对于任何前缀,(的数量永远大于等于)表示这前个字符中(比)多j个的种类。然后考虑左边的最少(就可以了。

2024-09-20 17:05:27 365

原创 河南省第十五届ICPC大学生程序设计竞赛 F

一个数x拆分成若干个素数相乘,如果每个素数的数量都比另一个数y多,那么x就是y的倍数。由于M实在是太大了,为了方便你读入,善良的出题人给你K个整数e1,e2,e3…然后很显然这个题有单调性,因为是连乘,如果N!那么check函数怎么写呢,对于一个数x!比如e1为3,第1个素数是2,那么e1为M的贡献就是乘上。先考虑一个数怎么样才能整除另一个数(是另一个数的倍数)这里给你的M就是写成若干个素数相乘的形式。个素数,ei代表着ei个第i个素数相乘。既然答案满足单调性,那我们就二分答案。请你求出一个最小的正整数。

2024-09-19 20:51:33 1079

原创 2022 杭州站 ICPC A C 线性同余方程 dp

遇到的可以从遇到的以及没遇到的来转移(这一行是满的,前面不是满的以及前面都是满的,这一行不是满的)在mod m的情况下,让上面求的gcd和m再扩展欧几里得一次,获得一个更小的gcd。在不考虑mod m的情况下,op1和op2的gcd我们可以求出来,用扩展欧几里得。然后需要注意的是m%op如果是0的话,那么最小能被减的数就是op,剩一个就行了。然后每产生一个让sum减去m%op的效果,我们就要给sum加上m%op个op。依旧是看了前i行,用了j个能量所获得的最大力量,然后k只有两种情况,1和0。

2024-09-18 20:51:22 723 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除